真的,为什么大多数人在代码没有它的情况下几乎所有东西都使用 self.something?
例如:
-(void)viewDidLoad {
self.mylabel.text = [NSString stringWithFormat:@" %@", someVariable];
}
没有self,代码的工作方式相同。
我试图看看没有自我会发生什么,它总是有效的。
真的,为什么大多数人在代码没有它的情况下几乎所有东西都使用 self.something?
例如:
-(void)viewDidLoad {
self.mylabel.text = [NSString stringWithFormat:@" %@", someVariable];
}
没有self,代码的工作方式相同。
我试图看看没有自我会发生什么,它总是有效的。
使用自我。意味着您正在使用 getter/setter,而不使用它意味着您正在直接访问实例变量。
这个问题在这里已经被处理了很多,但总结一下:
始终为每个数据成员创建一个@property,并在整个类实现中使用“self.name”来访问它。永远不要直接访问您自己的实例变量。
属性强制访问限制(例如只读)
属性强制执行内存管理策略(强、弱)
属性提供了透明地实现自定义 setter 和 getter 的机会。
具有自定义 setter 或 getter 的属性可用于强制执行线程安全策略。使用单一方式访问实例变量可以提高代码的可读性。
来源: