2015-02-06 35 views
0

只看實現一個名爲bodyMassIndex的方法的代碼示例。在此方法實現中是否存在一個setter方法?

而不是訪問直接在類的實例變量,這個想法是,存取方法來代替。我只是不確定是否存在setter和getter方法,這是我需要問的。

下面是代碼:

-(float)bodyMassIndex 

float h = [self heightInMeters]; 
return [self weightInKilos]/(h*h); 

什麼我真的不知道是在哪裏是這個代碼的setter方法?我看到正在使用的getter方法,根據發送給類實例的兩條消息heightInMetersweightInKilos,但我沒有看到setter方法。是不是將setter方法用於實現其他方法?

我已經看到了這個節目的相關的main.c文件中使用的制定者,所以我知道他們是如何被在間接設定值方面使用的。 是否只有純粹使用以外的 classter呢?

我真的不喜歡複製和粘貼代碼,並詢問此事。我寧願問自己編寫的代碼有問題,但由於我是accessor方法的新手,所以這次我沒有任何選擇!

+1

你爲什麼認爲這裏應該使用setter? – 2015-02-06 19:39:25

+0

我可以清楚地看到getter方法,這些方法獲取爲heightInMeters和weightInKilos設置的值。我只是想知道變量'h'是否與setter方法有關。當然,我不希望數值在這裏初始設定,但是一旦它們存儲在h中,並在這裏使用? – cheznead 2015-02-06 19:41:54

+1

'h'實際上只用於避免必須寫'return [self weightInKilos] /([self heightInMeters] * [self heightInMeters]);'。也就是說,'h'是方法的局部變量,而不是對象的成員變量。 – 2015-02-06 19:48:26

回答

2

這將(最有可能)是一個只讀屬性的getter,因爲它的計算並沒有引用任何後盾伊娃。 heightInMeters和weightInKilos可能正在讀/寫,這只是一個小幫手,那裏將是它(bodyMassIndex)沒有點保持跟蹤,當它是其他兩個屬性的不僅僅是產品,這樣做只是邀請了衝突和錯誤

相關問題