objc_setAssociatedObject

ios类别一样。通过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);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容