iOS开发-在分类(Category)文件中添加属性
2017-06-15 17:19
274 查看
在分类中添加属性时要注意,在分类头文件中添加的属性不会自动生成setter和getter,需自己以runtime方法实现,并且不能以下划线+属性名的方式访问。
例如我们在分类头文件中写这么一个属性:
这个属性这时并不存在 getter 和 setter方法,需要在.m文件中自己实现
另外要注意,在分类文件中无法添加全局变量,如果硬添加会编译报错,如图:
因此,如果有人问:如果在分类中添加一个与原类中属性名称相同的全局变量并在方法中赋值,原类属性的值是否发生变化,这时分两种情况,要么他是在考察你是否知道分类中无法添加全局变量,要么他是个逗逼。
That's all.
例如我们在分类头文件中写这么一个属性:
@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); }
另外要注意,在分类文件中无法添加全局变量,如果硬添加会编译报错,如图:
因此,如果有人问:如果在分类中添加一个与原类中属性名称相同的全局变量并在方法中赋值,原类属性的值是否发生变化,这时分两种情况,要么他是在考察你是否知道分类中无法添加全局变量,要么他是个逗逼。
That's all.
相关文章推荐
- iOS开发之category动态添加属性的方法------关联
- iOS开发中为NSNull的分类添加“属性”
- IOS开发中Category中动态添加属性
- ios开发问题:添加库和复制其它工程文件编译错误问题
- 关于iOS文件的分类,存放路径及文件属性
- iOS的文件分类、存放路径及文件属性
- 给分类(Category)添加属性
- IOS开发——获取本地音频文件(属性/信息)
- Objective-C,ios,iphone开发基础:分类(category,又称类别)
- iOS开发网络篇—使用ASI框架进行文件下载 分类: ios开发 2015-02-02 10:43 133人阅读 评论(0) 收藏
- iOS运行时初探-使用运行时机制向Category中添加属性
- 【原】iOS动态性(一):动态添加属性的方法——关联(e.g. 向Category添加成员变量)
- iOS 用宏在category里给对象添加属性
- iOS开发备忘录:属性列表文件数据持久化
- iOS开发之 Xcode6 添加xib文件,去掉storyboard的hello world应用
- iOS的文件分类、存放路径及文件属性
- IOS开发——获取本地音频文件(属性/信息)
- iOS在分类中添加属性,运行时编程,objc runtime 动态增加属性
- category 给IOS原生类添加属性
- iOS开发笔记7——Xcode 6中添加预编译pch文件