(一)OC语法04(关联对象)

2018-09-03  本文已影响1人  cdd48b9d36e0

这里通过用关联对象(实际上就是Runtime的几个Api)达到给分类添加成员变量的效果

分类里定义属性,不会生成下划线成员变量,生成的set和get方法也只有声明没有实现

关联对象提供了以下API
关联对象的原理

这里的第一个参数object是实例对象

关联对象运用
@implementation MJPerson (Test)

- (void)setName:(NSString *)name
{
    objc_setAssociatedObject(self, @selector(name), name, OBJC_ASSOCIATION_COPY_NONATOMIC);
}

- (NSString *)name
{
    // 隐式参数
    // _cmd == @selector(name)
    return objc_getAssociatedObject(self, _cmd);
}
上一篇下一篇

猜你喜欢

热点阅读