我已经搜索了许多有关ObjC访问器和合成访问器的问题.这个问题更多是一个“帮我解决问题”的问题;我不希望有一个答案,但我宁愿找专家来衡量这个论点.
在Cocoa Touch类中,我将编写一些这样的代码(其中soundEffects是一个合成的NSArray属性):
id foo = [self.soundEffects objectAtIndex:1];
一位同事问我要解释为什么上面比这条线更好:
id foo = [soundEffects objectAtIndex:1];
那么在功能上,这没有什么不同.
我对前者的论点如下:
> self.soundEffects告诉每个其他编码器工作的代码,这是一个iVar,而不是一个局部范围的变量.
>如果我们需要,我们可以在soundEffects getter访问器中放置自定义逻辑.
>没有具体的理由,它在“Obj-C”工作一年后就像在正确的事情上一样.
他接受参数#1和#2为有效,但也给出了对应点:
>这不是只是代码膨胀吗?
>不应该允许一个类直接与自己的iVar交谈,而不用自己调用一个方法(getter)呢?
任何人