1.对象isa指向类对象,类对象的isa指向元类。元类isa指向根元类。根元类的isa指针指向自己,superclass指针指向NSObject类

2.实例对象结构体只有一个isa变量,指向实例对象所属的类。类对象有isa,superclass,方法,属性,协议列表,以及成员变量的描述。

3.所有的对象调用方法都是一样的,没有必要存在对象中,对象可以有无数个,类对象就有一个所以只需存放在类对象中

可以从官方objc.h源码里面找到实例定义

/// Represents an instance of a class.

struct objc_object {

Class _Nonnull isa  OBJC_ISA_AVAILABILITY;

};

可以在runtime.h里面找到类对象的定义

struct objc_class {

Class _Nonnull isa  OBJC_ISA_AVAILABILITY;

#if !__OBJC2__

//向该类所继承的父类对象

Class _Nullable super_class                              OBJC2_UNAVAILABLE;

const char * _Nonnull name                               OBJC2_UNAVAILABLE;

long version                                             OBJC2_UNAVAILABLE;

long info                                                OBJC2_UNAVAILABLE;

long instance_size                                       OBJC2_UNAVAILABLE;

//成员变量列表

struct objc_ivar_list * _Nullable ivars                  OBJC2_UNAVAILABLE;

//方法列表

struct objc_method_list * _Nullable * _Nullable methodLists                    OBJC2_UNAVAILABLE;//方法列表

//用于缓存调用过的方法

struct objc_cache * _Nonnull cache                       OBJC2_UNAVAILABLE;

//协议链表用来存储声明遵守的正式协议

struct objc_protocol_list * _Nullable protocols          OBJC2_UNAVAILABLE;

#endif

}

最新文章

  1. python_爬虫一之爬取糗事百科上的段子
  2. Firemonkey ListView 点击事件
  3. IIS与Apache共用80端口方法
  4. nodejs的第二天学习笔记
  5. 堡垒机环境-jumpserver部署
  6. 让Storm插上CEP的翅膀 - Siddhi调研和集成
  7. flume ng之组件介绍
  8. AFNetworking自我总结
  9. 开源第三方登录组件OAuthLogin2.0 解析及开源地址
  10. CentOS随笔——关机命令
  11. web进修之—Hibernate 类型(4)
  12. ERP系统的问题
  13. 分布式控制系统Git学习
  14. Windows Server 2008 R2 64位操作系统安装Oracle 11g 64位数据库,在客户终端上安装Oracle 11g 32位,才能安装P/L Sql Developer并配置
  15. Python学习笔记第七周
  16. zabbix监控mysql最简单的方法
  17. LESS CSS 实例
  18. C++中的关键字用法--- 四种强制类型转换的总结
  19. taskset
  20. 重温PHP面向对象的三大特性

热门文章

  1. Selenium入门12 鼠标和键盘事件
  2. Selenium入门系列4 选择并操作一组元素
  3. 少年开始学习c#编程,过路的大神请担待!
  4. Oracle 日期加减运算
  5. POJ-3111 K Best---二分求最大化平均值
  6. 使用Sort方法对数组进行快速排序
  7. tarjan+topsort
  8. apache以天为单位生成日志
  9. javascript入门笔记9-认识DOM
  10. JSP自定义标记