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