广州网站推广工具,刷单网站搭建,哈尔滨seo优化客户,网站用单页面框架做在iOS设计Category中#xff0c;默认不能直接添加属性#xff0c;如果分类中通过property修饰的属性#xff0c;只会生成setter和getter的声明#xff0c; 不会生成其实现#xff1b;因此#xff0c;如果一定要添加属性的话#xff0c;需要借助runtime特性#xff0c;通… 在iOS设计Category中默认不能直接添加属性如果分类中通过property修饰的属性只会生成setter和getter的声明 不会生成其实现因此如果一定要添加属性的话需要借助runtime特性通过 objc_setAssociatedObject(self, valueKey, value, OBJC_ASSOCIATION_COPY_NONATOMIC)设置值由objc_getAssociatedObject(self, valueKey)函数获取值。 具体实现如下 NSObjectExtension.h中 // 在分类中默认通过property修饰的属性只会生成setter和getter的声明不会生成其实现 property (nonatomic, copy) NSString *value; NSObjectExtension.m中 #import NSObjectExtension.h #import objc/runtime.h implementation NSObject (Extension) static char valueKey; // 关联属性值的key - (void)setValue:(NSString *)value { // 将某个值 跟 某个对象关联起来 // 将某个值 存储到 某个对象中 objc_setAssociatedObject(self, valueKey, value, OBJC_ASSOCIATION_COPY_NONATOMIC); } - (NSString *)value { // 通过valueKey取value值 return objc_getAssociatedObject(self, valueKey); } end 测试.......................................................................... - (void)viewDidLoad { [super viewDidLoad]; NSString *str jack; str.value abc; self.value 哈哈哈; NSLog(%,% , str.value, self.value); } 运行结果 2015-06-10 17:07:27.488 运行时的应用-分类增加属性[1698:63864] abc 哈哈哈 转载于:https://www.cnblogs.com/guozhong/p/4566773.html