学习使用运行时知识:
方法引入: tips:需要提前导入运行时框架#import <objc/runtime.h>
static const char testKey;
objc_setAssociatedObject(self, &testKey, @132, OBJC_ASSOCIATION_RETAIN);
NSNumber *number = objc_getAssociatedObject(self, &testKey);
问题引入:方法功能?
文档资料
描述
使用一个已定的key和关联规则给一个给定的对象设定一个关联值。 说白了就是给一个对象添加一个属性,这个属性名就是给的key,值为value,并且对这个属性添加策略:nonatomic, retain, assign,copy…【类似于setValue: forkey:】
参数解析:
object : 要添加属性的对象
key : 是个指针型的,需要传入地址
value : 与key相对应的value
policy : 要添加的策略
描述:
根据一个给定的对象的key值返回其对应的value 【类似于objectForKey:】
参数解析:
object: 属性所关联的对象
key : 关联用的key
方法功能总结:
在运行时动态添加一个属性
优点:按往常思路添加一个属性便需要去添加属性声明,.m .h文件,或是继承文件再填写,相对麻烦,而此种操作为属性挂载上去,理加方便快速。
引伸: 什么是运行时? 运行时能做什么?