我相信我在很大程度上理解属性.我的问题是,如果我有一个实例变量的属性,并且我在我的实现文件中的方法中设置或检索它,我应该使用self.myProperty还是只是myProperty?我知道其中一个有效,但我看到了混合约定,有时代码直接访问变量,有时则通过属性访问变量.
这样做有技术原因吗?这只是公约/个人偏好吗?而且我不是指方法的参数名称与实例变量名称冲突的实例,这可能是使用该属性的一个原因(至少,在其他语言中,我不知道这个).我假设当一个人在实现中使用该属性时,他们想要利用他们声明属性的方式(即非原子,保留),所以例如在方法中,人们可以这样做:
self.myProperty = [someObject someAutoReleasedObject];
Run Code Online (Sandbox Code Playgroud)
代替:
myProperty = [[someObject someAutoReleasedObject] retain];
Run Code Online (Sandbox Code Playgroud)
这是什么原因?那么只有某些情况才能使用该物业吗?
我是Objective-C的新手,这是让我困惑的少数事情之一.到目前为止,我刚刚直接访问了实例变量,最可能的错误假设是,通过属性实际调用/发送方法/消息并增加了不必要的开销.我很确定我错了,但即使开销的差异可以忽略不计(如果有的话),为什么只要直接访问变量就可以选择加入?
我很确定我的想法是错的,这就是我在这里问的原因.