摘要:本文将带你了解IOS开发入门iOS开发-在分类(Category)文件中添加属性,希望本文对大家学IOS有所帮助。
本文将带你了解IOS开发入门iOS开发-在分类(Category)文件中添加属性,希望本文对大家学IOS有所帮助。
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);
}
另外要注意,在分类文件中无法添加全局变量,如果硬添加会编译报错,如图:
因此,如果有人问:如果在分类中添加一个与原类中属性名称相同的全局变量并在方法中赋值,原类属性的值是否发生变化,这时分两种情况,要么他是在考察你是否知道分类中无法添加全局变量,要么他是个逗逼。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号