我已经搜索了许多关于ObjC访问器和综合访问器的问题,但是都没有用。这个问题更像是一个“帮助我解决问题”的问题;我不希望有一个答案,但我希望找专家来论证。在Cocoa Touch类中,我将编写如下代码(其中soundEffects是合成的NSArray属性):id foo = [self.soundEffects objectAtIndex:1];一位同事让我解释一下,为什么上述内容比这行更好:id foo = [soundEffects objectAtIndex:1];好吧,从功能上来说,没有什么不同。我对前者的论据如下:self.soundEffects 告诉处理该代码的所有其他编码器这是一个iVar,而不是局部范围的变量。如果需要,可以将自定义逻辑放入soundEffectsgetter访问器中。在没有具体原因的情况下,在Obj-C工作了一年后,感觉就像做正确的事情。他接受参数#1和#2是有效的,但也给出了对点:这不只是代码膨胀吗?是否应该允许类直接与自己的iVar对话而不必自己调用方法(getter)?有没有人?
3 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
自我声音效果
通过setter / getter设置/获取实例变量,因此,如果我们想在其值更改时执行一些自定义操作,则该逻辑可以进入其getter / setter。
同样根据ios 6,ivar对应于
@property(nonatomic)NSArray * propertyName;
将会
_propertyName
所以我想你不能使用
id foo = [soundEffects objectAtIndex:1];
不再。不过不确定。相反,您应该使用
id foo = soundEffects [1];
- 3 回答
- 0 关注
- 500 浏览
添加回答
举报
0/150
提交
取消