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

来源:互联网 发布:js视频广告广告代码 编辑:程序博客网 时间:2024/05/22 08:07
属性 其实就是get/set 方法。我们可以使用  objc_setAssociatedObject/objc_getAssociatedObject  实现 动态向类中添加 方法
1、引用
#import <objc/runtime.h>
2、代码:
.h文件
@interface NSObject (CategoryWithProperty)@property (nonatomic, strong) NSObject *property;@end
.m文件
@implementation NSObject (CategoryWithProperty)- (NSObject *)property {    return objc_getAssociatedObject(self, @selector(property));}- (void)setProperty:(NSObject *)value {    objc_setAssociatedObject(self, @selector(property), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);}@end
0 0