首页投稿(暂停使用,暂停投稿)iOS 开发 iOS Developer

iOS Objective-C property(属性)

2016-08-19  本文已影响258人  zyh1158

首先,先了解一下属性(property)的作用:

我们一般定义属性会这样定义,这是我们最熟悉的代码了

@property (nonatomic, copy) NSString *name;

我们逐一分析一下这句话
@property (参数1,参数2) 类型 名字
@property 的作用:

也就是说下两段代码是等同的

@property NSString *name;
 - (void)setName:(NSString *)name;
 - (NSString *)name;

参数的几点说明:

nonatomic, strong, weak, copy,assign, readonly, readwrite
@property (nonatomic, getter=isOn) BOOL on;

以上是属性的基本概念和使用,下面还想说一下直接访问实例变量问题,在我们声明一个属性时,系统会生成在属性名前加下划线的实例变量。在前面的例子里面就会生成 _name 的实例变量。通过 synthesize 语法可以改变系统生成的实例变量的名字

@synthesize name = _userName;

那我们在改变属性值的时候,是直接通过实例变量呢?还是属性呢?

建议在读取实例变量的时候采用直接访问实例变量的形式 _name,在设置实例变量的时候通过属性来做。特别是使用懒加载时,以后在访问属性时得使用属性访问数据,不能再直接使用实例变量了。
上一篇 下一篇

猜你喜欢

热点阅读