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是查找当前类(含子类)的方法。
对象关联 :
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是查找当前类(含子类)的方法。
相关文章推荐
- netty 第二章 从client 传递Object 对象到server
- 各种细的知识点(二)
- a different object with the same identifier value was already associated with the session:
- Qt之Threads和QObjects
- Qt之Threads和QObjects
- Qt之Threads和QObjects
- Objective-C中一种消息处理方法performSelector: withObject:
- PyGobject(三十五)布局容器之ShortcutsWindow
- DataInputStream && ObjectInputStream 示例
- PyGobject(三十四)布局容器之Assistant
- The type java.lang.Object cannot be resolved.It is indirectly referenced from required .class files。
- PyGobject(三十三)布局容器之ApplicationWindow
- 关于NSMutableArray 调用 addObject 方法崩溃
- PyGobject(三十二)布局容器之Window
- PyGobject(三十一)布局容器之EventBox
- Objective-C-UI控件学习之UICollectionView详解
- [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
- Assigning retained object to weak property object
- java中object文档
- [GIF] Shape Objects in GIF Loop Coder