查看一个实现名为bodyMassIndex的方法的代码示例。
不是直接访问类中的实例变量,而是使用访问器方法。我不确定这里是否存在setter和getter方法以及我需要提出的问题。
以下是代码:
-(float)bodyMassIndex
float h = [self heightInMeters];
return [self weightInKilos] / (h*h);
我真正想知道的是这段代码中的setter方法在哪里?我看到正在使用的getter方法,就发送给类实例的两条消息heightInMeters
和weightInKilos
而言,但我没有看到setter方法。是不是setter方法不会用于其他方法的实现?
我已经看到了这个程序的相关main.c文件中使用的setter,所以我知道如何在间接设置值方面使用它们。 setter是否仅在类<之外使用
。我真的不想复制和粘贴代码并询问它。我更愿意提问一些关于我自己写过的代码的问题,我遇到了问题,但由于我不熟悉访问方法,所以这次我没有任何选择!
答案 0 :(得分:2)
这将(很可能)是只读属性的getter,因为它是计算的,并且没有引用的iVar支持。 heightInMeters和weightInKilos可能是读/写的,这只是一个小帮手,当它只是两个其他属性的产品时,没有必要跟踪它(bodyMassIndex),这样做只是邀请冲突和错误