2010-09-16 47 views
0

我使用目標c並試圖從函數中輸出一個值。顯然我做錯了什麼,因爲我收到了一個不正確的值。客觀c - 浮動返回錯誤值

這是我的代碼:

-(float) getAngleBetween { 
float num = 0.0; 
return num; 

}

和我打電話,如下所示:

float *theAngleBetween = [self getAngleBetween]; 
NSLog(@"Angle.. = %f", theAngleBetween); 

任何幫助嗎?

回答

1
float theAngleBetween = [self getAngleBetween]; 
// ^

應該沒有*

由於您要退回float,因此接收方也應該有floatfloat*表示浮動指針,與float完全不同。

順便說一句,請確保您聲明-(float)getAngleBetween;之前您撥打[self getAngleBetween]。把它放在@interface。如果之前未聲明,則該方法將被假定爲-(id)getAngleBetween;。在x86返回idfloat使用不同的API(objc_msgSend vs objc_msgSend_fpret),這可能是錯誤結果的原因。

+0

我聲明,在我的界面,它仍然告訴我,我在初始化中有不兼容的類型。 – Lilz 2010-09-16 09:29:37

+0

@Lily:你有'#import'接口文件嗎? – kennytm 2010-09-16 09:30:43

+0

是的,因爲我正在調用另一個我在界面中聲明的函數。 – Lilz 2010-09-16 09:32:53

0

你應該有:

float theAngleBetween = [self getAngleBetween]; 

擺脫了*的,那是唯一的對象,浮球是一個原始數據類型。

+0

沒有*,它告訴我在初始化時不兼容的類型 – Lilz 2010-09-16 09:23:15