运行时objc_setAssociatedObject对象之间增
2018-01-08 本文已影响10人
葛朋1990
通过objc_setAssociatedObject可以给二个对象之间增加联系。因为是运行时的特性,所以需要导
#import <objc/runtime.h>
objc_setAssociatedObject(self, &imageURLkey, url,OBJC_ASSOCIATION_RETAIN_NONATOMIC);
这四个后面的参数分别表示:源对象,关键字,关联的对象和一个关联策略。
关键策略是一个枚举值。
OBJC_ASSOCIATION_ASSIGN = 0, <指定一个弱引用关联的对象>
OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1,<指定一个强引用关联的对象>
OBJC_ASSOCIATION_COPY_NONATOMIC = 3, <指定相关的对象复制>
OBJC_ASSOCIATION_RETAIN = 01401, <指定强参考>
OBJC_ASSOCIATION_COPY = 01403 <指定相关的对象复制>
获取关联的对象
objc_getAssociatedObject(self, &imageURLkey);
但我们不需要关联时。需要移除关联
objc_setAssociatedObject(self, &imageURLkey, nil, OBJC_ASSOCIATION_ASSIGN);