OC对象的本质

OC对象的本质

一个对象的本质是一个结构体,结构体里面有isa指针、成员变量等,isa指针指向对象的类别,instance的isa指向class,class的isa指向元类,元类的isa指向根元类

Category分类实现原理

  1. Objective-C的运行是依赖OC的runtime的,是通过dyld动态加载的。
  2. Category是在运行期加载的,把category的实例方法、协议以及属性添加到类上,把category的类方法和协议添加到类的metaclass上。
  3. 如果在类和Category中都添加了相同的方法,此时方法列表中应该有两个方法,但是执行顺序是先执行Category的方法,执行查找到该方法后,就不会继续执行,所以,原来类中的方法就被“覆盖”了。

OC语言的动态特性

OC语言具有动态特性,在编译的时候,类型不确定,在运行时,能够动态识别类型

你可能感兴趣的:(OC对象的本质)