IMP

IMP-指向实际执行函数体的函数指针

#if !OBJC_OLD_DISPATCH_PROTOTYPES
typedef void (*IMP)(void /* id, SEL, ... */ );
#else
typedef id (*IMP)(id, SEL, ...);
#endif

可以看到,这个函数体前两个参数是 id(消息接受者,也就是对象),以及SEL(方法的名字)


method/objc_method

method - 指向Objective C中的方法的指针

typedef struct objc_method *Method;

其中

struct objc_method {
SEL method_name OBJC2_UNAVAILABLE;
char *method_types OBJC2_UNAVAILABLE;
IMP method_imp OBJC2_UNAVAILABLE;
} OBJC2_UNAVAILABLE;

_cmd

SEL 类型的一个变量,Objective C的函数的前两个隐藏参数为self 和 _cmd


Ivar

ivar - objective C中的实例变量

typedef struct objc_ivar *Ivar;

可以看到变量的内存模型

struct objc_ivar {
char *ivar_name OBJC2_UNAVAILABLE;
char *ivar_type OBJC2_UNAVAILABLE;
int ivar_offset OBJC2_UNAVAILABLE;
#ifdef __LP64__
int space OBJC2_UNAVAILABLE;
#endif
} OBJC2_UNAVAILABLE;

最新文章

  1. EChart系列:在echart3中使用百度地图扩展之后,如何获取到百度地图对象
  2. php 下设置cookie问题
  3. vs code插件记录
  4. C# for循环 循环中先求长度还是使用list.Count,哪个效率高
  5. PHP大文件存储示例,各种文件分割和合并(二进制分割与合并)
  6. 如何决定DCOM是否可用
  7. PHP面试出场率较高的题目<转载>
  8. HTTP2.0介绍
  9. <<易货>>项目Postmortem结果
  10. linux 下 `dirname $0`
  11. Spring 操作数据库
  12. android捕获ListView中每个item点击事件
  13. Linux入门之——安装虚拟机软件
  14. UVA 12113 Overlapping Squares
  15. 转: seajs手册与文档之 -- require规则
  16. 进口fbx角色动画read-only解
  17. [LeetCode] K Inverse Pairs Array K个翻转对数组
  18. 微信小程序 app.json文件配置
  19. centos7搭建ELK Cluster集群日志分析平台(三):Kibana
  20. AtCoder Regular Contest 099 (ARC099) E - Independence 二分图

热门文章

  1. 利用struts2<s:token>标签防止用户重复提交
  2. 【Unity笔记】摄像机跟随目标角色
  3. 常用sqoop操作
  4. DataGridView使用技巧七:列顺序的调整、操作行头列头的标题
  5. Beego 框架学习(一)
  6. Laravel 多where组合
  7. 科普Spark,Spark核心是什么,如何使用Spark(1)
  8. 第二百八十四节,MySQL数据库-MySQL触发器
  9. map用法小例子
  10. poj2513(无向图判欧拉路)