您的位置:首页 > 移动开发 > Objective-C

Effetive Objective - C 1.Objective 9

2016-07-28 18:23 465 查看
类簇 : 可以把多个类的复杂实现 隐藏到一个类的借口之下

对象关联 :

objc_setAssociatedObject ( 对象  键   值   内存语义

关联某对象的值  到对象

objc_getAssociatedObject

获得某对象的关联的键的值

objc_removeAssociatedObject

移除某对象上所有关联的对象

少用对象关联   bug难查

objc_msgsend:

int returnvalue = [obj   messagename:paramater]     ==     int returnvalue    objc_msgsend(id  ,  sel , ....)

oc中所有消息调用 都是调用objc_msgsend

每个类中有一个方法表  当调用objc_msgsend时  会以选择子作为 查找这个表的key如果查找到  则调用这个函数(c函数)没找到继续向父类中查找

objc_msgsend_stret : 消息返回结构体时

objc_msgsend_fpret : 消息返回浮点数时

objc_msgsendSuper : 消息在父类中查找

@select(funname:)  以函数名为参数返回函数地址   SEL  存放函数地址的指针

注意1、@selector是查找当前类(含子类)的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: