runtime(给分类增加属性)

2016-11-24  本文已影响0人  握青春

常用的地方

 1. 动态交换两个方法的实现(特别是实现 交换系统方法的实现)

2. 动态添加对象的成员变量和成员方法

3. 获得某个类的所有成员变量,成员方法

应用: OC最实用的runtime总结 //暂时先写自己需要的这块

二. 在分类中设置属性,给任何一个对象设置属性

在这里先要解释一个属性和成员变量区别,(因为我开始学习的时候,编译器已从GCC转换为LLVM(low level virtual machine),所以自己也是傻傻分不清楚,可能理解有偏差,勿喷)

通常情况下@property 相当于 声明ivar + 生成set get方法

而在分类里,只是生成 set get方法, 不会生成成员变量 必须实现set和get方法

可见这个成员变量不存在,

参数object:源对象,给哪个对象设置属性                                      

参数key:一个属性对应一个key,可根据key取出值,建议用char类型,节省字节

参数value:给属性设置的值

参数policy: 存储策略,(assion,copy,retain(strong))

将值(value)跟对象(object)关联起来(将值存储到对象里)

有一个具体的应用,详情控制器继承于Base控制器

调起,

给button增加事件 动态给这个属性赋值

当点击的时候触发红框下面的方法,根据key取出 block ,并执行block

上一篇下一篇

猜你喜欢

热点阅读