频道栏目
首页 > 资讯 > IOS > 正文

iOS开发-在分类(Category)文件中添加属性

17-06-16        来源:[db:作者]  
收藏   我要投稿
iOS开发-在分类(Category)文件中添加属性,在分类中添加属性时要注意,在分类头文件中添加的属性不会自动生成setter和getter,需自己以runtime方法实现,并且不能以下划线+属性名的方式访问。
例如我们在分类头文件中写这么一个属性:
@property (nonatomic, strong) ClassName *propertyName;
这个属性这时并不存在 getter 和 setter方法,需要在.m文件中自己实现
static const void *ClassNameKey = &ClassNameKey;
//然后自己实现getset方法  
- (ClassName *)propertyName {
   return objc_getAssociatedObject(self, ClassNameKey);
}                                                                  

- (void)setPropertyName:(ClassName *)propertyName {
    objc_setAssociatedObject(self, ClassNameKey, propertyName, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
另外要注意,在分类文件中无法添加全局变量,如果硬添加会编译报错,如图:
因此,如果有人问:如果在分类中添加一个与原类中属性名称相同的全局变量并在方法中赋值,原类属性的值是否发生变化,这时分两种情况,要么他是在考察你是否知道分类中无法添加全局变量,要么他是个逗逼。

相关TAG标签
上一篇:UIColor+Hex
下一篇:创建线程的另一种方法-使用Android线程池
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站