美文网首页
运行时objc_setAssociatedObject对象之间增

运行时objc_setAssociatedObject对象之间增

作者: 葛朋1990 | 来源:发表于2018-01-08 16:12 被阅读10次

    通过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);
    

    相关文章

      网友评论

          本文标题:运行时objc_setAssociatedObject对象之间增

          本文链接:https://www.haomeiwen.com/subject/drpbnxtx.html