亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

iOS學習筆記--isa的簡介

標簽:
iOS

1.isa

类和对象都可以看作一个对象,以上面的表为例,BoyStudent虽然是个类,但它也是个类对象,而BoyStudent这个类对象所属的类就是它的元类,换言之,BoyStudent就是meteClass的实例。 对于表中的meteClass他们虽然都是元类,但也是有父类、子类的层级关系的。

下面再说isa:

isa 就是一个Class类型的指针,每一个实例对象都有一个指向对象所属类的指针,例上图的小明的isa指向BoyStudent,BoyStudent的isa指向meteClass,这两个例子里面的关系是相同的,就是指向所属的类,这就是isa指针

所有元类最终集成一个根元类,根源类的isa指向自己,形成一个封闭的内循环。

由图上可知 Class是一个objc_class类型的指针 objc_object类型的指针

这里先看objc_object的定义,注意上图

再看objc_class的定义,上图

二者都有一个Class类型的指针isa,指向它所属的类

objc_class 里面的

super_class:父类

name:名称

version:类的版本信息

info:提供运行期的一些位标识

objc_ivar_list *ivars 实例变量表

objc_method_list **methodLists 类方法列表

当类方法被调用时,先会从本身查找类方法的实现,如果没有,元类会向他父类查找该方法。同时注意的是:元类(meteClass)也是类,它也是对象。元类也有isa指针,它的isa指针最终指向的是一个根元类(root meteClass).根元类的isa指针指向本身,这样形成了一个封闭的内循环。

點擊查看更多內容
2人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
移動開發工程師
手記
粉絲
32
獲贊與收藏
323

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消