美文网首页
iOS 关联对象

iOS 关联对象

作者: 男人宫 | 来源:发表于2020-03-20 21:09 被阅读0次

    关联对象简单的说就是运用oc语言的运行时特性(runtime),给类别加属性(当然不止加属性).正常的类中创建一个属性,类会自动的为你默认创建setter和getter方法,虽然你看不到,但确实存在.但类别上上创建属性就得我们去手动用管来你对象去实现存取方法.所以关联对象就可以会发挥作用了

    #import <objc/runtime.h>
    
    @interface NSObject (AssociatedObject)
    
    @property (nonatomic, strong) id property;
    
    @end
    
    @implementation NSObject (AssociatedObject)
    @dynamic property;
    
    - (void)setProperty:(NSString *)property {
        objc_setAssociatedObject(self, @selector(property), property, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    }
    //这里的 _cmd 代指当前方法的选择子,也就是 @selector(property)方法。
    - (id)property {
        return objc_getAssociatedObject(self, _cmd);
    }
    
    
    
    @end
    

    相关文章

      网友评论

          本文标题:iOS 关联对象

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