如果代码在没有代码的情况下工作,为什

时间:2013-10-24 08:03:24

标签: objective-c self

真的,为什么大多数人在没有代码的情况下使用self.something几乎所有东西?

例如:

-(void)viewDidLoad {

self.mylabel.text = [NSString stringWithFormat:@" %@", someVariable];

}

代码在没有自我的情况下以相同的方式工作。

我试图看看没有自我会发生什么,它总是有效。

1 个答案:

答案 0 :(得分:2)

使用自我。意味着您正在使用getter / setter,而不使用它意味着您正在直接访问实例变量。

这个问题在这里得到了很多处理,但总结如下:

  

始终为每个数据成员创建一个@property并使用“self.name”   在整个类实现中访问它。永远不要访问自己的   实例变量直接。

     

属性强制实施访问限制(例如readonly)

     

属性强制执行内存管理策略(强,弱)

     

属性提供透明实现自定义的机会   制定者和吸气剂。

     

使用自定义setter或getter的属性可用于强制执行   线程安全策略。有一种方法来访问实例   变量增加了代码的可读性。

来源:

Best Practices fr Obj-C