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