您的位置:首页 > 移动开发 > Objective-C

category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性

2016-06-23 10:43 573 查看
属性 其实就是get/set 方法。我们可以使用  objc_setAssociatedObject/objc_getAssociatedObject  实现 动态向类中添加 方法
@interface NSObject (CategoryWithProperty)

@property (nonatomic, strong) NSObject *property;

@end

@implementation NSObject (CategoryWithProperty)

- (NSObject *)property {
return objc_getAssociatedObject(self, _cmd);
}

- (void)setProperty:(NSObject *)value {
objc_setAssociatedObject(self, @selector(property), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}


//    源对象,关键字,关联的对象和一个关联策略

//    关联策略表明了相关的对象是通过赋值,保留引用还是复制的方式进行关联的

//    还有这种关联是原子的还是非原子的。这里的关联策略和声明属性时的很类似。这种关联策略是通过使用预先定义好的常量来表示的。

_cmd http://blog.csdn.net/pengyuan_d/article/details/51741496
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: