您的位置:首页 > 其它

第七篇:类的本质与isa指针及SEL指针的关系

2015-09-11 17:04 239 查看
1.》两指针所在的类:isa指针 和 SEL指针 是属于NSObject基类。

》类的本质:即是一个结构体。

2.当创建一个类后:

》创建对象:类 * p = [类 new] ;

》在创建一个对象之前,在堆内存中就先存在了一个该类的类类型对象,其中有一个SEL指针就是指向在代码区内该类的第一个方法。

》定义一个对对象之后,在堆内存中创建了一个该类的对象,该对象包含了一个isa指针的成员变量(第一个属性),isa指针则指向在堆里面存在的类类型对象, 在栈内存里创建了一个该类的指针p,p指针指向的是isa地址。

3.当执行[p 方法] 时:

》当p调用该类的一个方法时,首先通过p找到isa指针,再通过isa指针找到类类型对象,当在堆内存中找到类类型对象后,首次调用该类的方法时,用while(SEL == 方法地址) 找到该方法,这样就完成了一次方法的调用。当下一次该对象调用同一个方法时,直接在缓存中找到。

4.当创建一个类对象内存表:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: