首页 > 代码库 > OC、Swift 属性、成员变量
OC、Swift 属性、成员变量
一、@property
使用@property 修饰的变量,编译器会自动生成带下划线的同名属性和与之对应的 get set 方法。通过 . 的方式访问属性其实是访问与之对应的 get set 方法,所以在 get set 中不可以使用self.属性 的形式,否则会陷入死循环。当同时重写两个方法中是需在实现文件中添加 @synthesize property = _property;
在类中,可直接访问其对应的属性。
// a.h @property (nonautomic,copy) NSString *a; //a.m @synthesize a = _a; -(void) setA(NSString *val){ _a = [NSString stringWithFormat: @"%@123", val ]; } -(NSString *)a{ return _a; }
二、OC中只有.h 中声明的属性可以被外部访问,Swift 中同修饰符来控制成员变量的访问级别。
Swift中将属性分为Store Property 和 computed property, 拥有set get willSet didSet 四个方法。
存储属性使用默认的get set 方法,一旦get 或者set 方法被重写,就决定了此变量一定是计算属性。
didSet 和 willset 只能用于存储属性。
同OC一样,在 get 中使用 self. 获取属性值或者 set 、willSet、didSet 中使用 self. 设置属性的值 都会导致无限循环崩溃。
OC、Swift 属性、成员变量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。