为了账号安全,请及时绑定邮箱和手机立即绑定

在iOS上的Objective-C中,使用合成的吸气剂时,“ self.foo”和“ foo”之间的

在iOS上的Objective-C中,使用合成的吸气剂时,“ self.foo”和“ foo”之间的

烙印99 2019-11-19 14:45:38
我已经搜索了许多关于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];


查看完整回答
反对 回复 2019-11-19
  • 3 回答
  • 0 关注
  • 454 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信