ios运行时一些方法说明

2017-12-05  本文已影响0人  KS小么

一. 关联对象主要函数:

基本说明:关联对象就是runTime界的NSMultableDictionary

void objc_setAssociatedObject(id object,constvoid*key, id value, objc_AssociationPolicy policy);    相当于 setValue:forKey 进行关联value对象

id objc_getAssociatedObject(id object, const void *key);  用来读取对象

void objc_removeAssociatedObjects(id object); 移除一个关联对象,或者使用objc_setAssociatedObject函数将key指定的关联对象设置为nil。

相关参数 :

key:要保证全局唯一,key与关联的对象是一一对应关系。必须全局唯一。通常用@selector(methodName)作为key。value:要关联的对象。policy:关联策略。有五种关联策略。OBJC_ASSOCIATION_ASSIGN 等价于 @property(assign)。OBJC_ASSOCIATION_RETAIN_NONATOMIC等价于 @property(strong, nonatomic)。OBJC_ASSOCIATION_COPY_NONATOMIC等价于@property(copy, nonatomic)。OBJC_ASSOCIATION_RETAIN等价于@property(strong,atomic)。OBJC_ASSOCIATION_COPY等价于@property(copy, atomic)。

使用场景:关联对象相当于实例变量,在类别(也有人管叫分类)里面,不能创建实例变量, 关联对象就可以解决这种问题。(对应属性,有对应属性的的runtime 解决方法)

设置关联对象关键key,一共有三种写法:

(1)静态变量&btnKey

(2)@selector(methodName)

(3)_cmd

上一篇下一篇

猜你喜欢

热点阅读