直接访问(实例变量),间接访问(属性)。
在对象外部:
总是使用属性来访问。
在对象内部:
除了几种特殊情况外,强烈建议在读取实例变量时采用直接访问形式。而在设置实例变量时通过属性来做。
在初始化方法及dealloc方法中,总是使用直接通过实例变量来读写数据。
例:以下会抛出异常
-(void)setLastName:(NSString*)lastName{
self.lastName = lastName;
}
在"惰性初始化"情况下,必须通过“获取方法”来访问属性,否则,实例变量永远不会初始化。
例: 以下是错误演示
-(Brain*)brain {
if(!_brain) {
_brain = [Brain new];
}
return _brain;
}