只看實現一個名爲bodyMassIndex的方法的代碼示例。在此方法實現中是否存在一個setter方法?
而不是訪問直接在類的實例變量,這個想法是,存取方法來代替。我只是不確定是否存在setter和getter方法,這是我需要問的。
下面是代碼:
-(float)bodyMassIndex
float h = [self heightInMeters];
return [self weightInKilos]/(h*h);
什麼我真的不知道是在哪裏是這個代碼的setter方法?我看到正在使用的getter方法,根據發送給類實例的兩條消息heightInMeters
和weightInKilos
,但我沒有看到setter方法。是不是將setter方法用於實現其他方法?
我已經看到了這個節目的相關的main.c文件中使用的制定者,所以我知道他們是如何被在間接設定值方面使用的。 是否只有純粹使用以外的 classter呢?
我真的不喜歡複製和粘貼代碼,並詢問此事。我寧願問自己編寫的代碼有問題,但由於我是accessor方法的新手,所以這次我沒有任何選擇!
你爲什麼認爲這裏應該使用setter? – 2015-02-06 19:39:25
我可以清楚地看到getter方法,這些方法獲取爲heightInMeters和weightInKilos設置的值。我只是想知道變量'h'是否與setter方法有關。當然,我不希望數值在這裏初始設定,但是一旦它們存儲在h中,並在這裏使用? – cheznead 2015-02-06 19:41:54
'h'實際上只用於避免必須寫'return [self weightInKilos] /([self heightInMeters] * [self heightInMeters]);'。也就是說,'h'是方法的局部變量,而不是對象的成員變量。 – 2015-02-06 19:48:26