2009-04-26 61 views
0

有沒有辦法將float「byref」傳遞給目標C中的方法?下面是我的本錢的概述:在目標C中傳遞浮動「byref」?

方法簽名:

- (void) MyMethod: (float*) min max:(float*) max; 

方法:

- (void) MyMethod: (float*) min max:(float*) max 
{ 
} 

試圖調用它:

float min1 = 0; float max1 = 0; 
[self MyMethod: min:&min1 max:&max1]; 

我得到以下警告,並且在嘗試調用MyMethod時代碼會暫停:

警告: 'MyClass的' 可能不響應 '+的MyMethod:最小:最大:'

回答

3

爲您的方法簽名聲明爲

- (void) MyMethod: (float*) min max:(float*) max 

,但你在呼喚它作爲

- MyMethod:min:max: 

...其中包括一個額外的'min:',這不在聲明中。

試着改變你的調用代碼

float min1 = 0; float max1 = 0; 
[self MyMethod:&min1 max:&max1]; 

,看看是否能提高的東西。

不過,我看你的錯誤信息有關的簽名抱怨「+的MyMethod:最小:最大:」,這也意味着你試圖將消息發送到的類而不是的一個實例類;你將不得不糾正這一點。

最後,Objective-C代碼中的方法選擇器通常以小寫字母開頭;您可能需要閱讀常見的Objective-C naming conventions

+0

問題解決。當我重新輸入錯誤信息時,額外的「min」事件是一個錯字。問題實際上(正如你所指出的),我試圖從靜態/類方法中調用一個實例方法。我會閱讀命名約定。謝謝您的幫助! – Marty 2009-04-26 20:05:11