0

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

例如:

-(void)viewDidLoad {

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

}

没有self,代码的工作方式相同。

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

4

1 回答 1

2

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

这个问题在这里已经被处理了很多,但总结一下:

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

属性强制访问限制(例如只读)

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

属性提供了透明地实现自定义 setter 和 getter 的机会。

具有自定义 setter 或 getter 的属性可用于强制执行线程安全策略。使用单一方式访问实例变量可以提高代码的可读性。

来源:

Obj-C 的最佳实践

于 2013-10-24T08:09:41.770 回答