iOS 关联对象

2020-03-20  本文已影响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
上一篇 下一篇

猜你喜欢

热点阅读