为什么要用'自我'.什么时候不被迫?

0 iphone objective-c

我注意到我编码的方式(严重;))与我从其他人看到的代码之间存在差异.

谁能解释为什么我看到有些人在使用

self.varname.anotherpropertie
Run Code Online (Sandbox Code Playgroud)

什么时候

varname.anotherpropertie
Run Code Online (Sandbox Code Playgroud)

似乎工作也一样.我不用自己.在我的代码中很多.我想知道这是非常糟糕的还是我需要学习的东西才能理解为什么它被大多数人使用了这么多?

再次感谢,-Code

Chu*_*uck 6

他们是不同的东西.在一个类中,你有一个以foo声明属性命名的实例变量也被命名foo,写入只是foo访问实例变量,同时self.foo通过属性的getter方法(可能只返回实例变量,或者它可能会做更多).

我建议看一下Apple的Objective-C编程语言声明属性章节,详细解释它的工作原理以及何时选择哪个选项.