我使用目標c並試圖從函數中輸出一個值。顯然我做錯了什麼,因爲我收到了一個不正確的值。客觀c - 浮動返回錯誤值
這是我的代碼:
-(float) getAngleBetween {
float num = 0.0;
return num;
}
和我打電話,如下所示:
float *theAngleBetween = [self getAngleBetween];
NSLog(@"Angle.. = %f", theAngleBetween);
任何幫助嗎?
我使用目標c並試圖從函數中輸出一個值。顯然我做錯了什麼,因爲我收到了一個不正確的值。客觀c - 浮動返回錯誤值
這是我的代碼:
-(float) getAngleBetween {
float num = 0.0;
return num;
}
和我打電話,如下所示:
float *theAngleBetween = [self getAngleBetween];
NSLog(@"Angle.. = %f", theAngleBetween);
任何幫助嗎?
float theAngleBetween = [self getAngleBetween];
// ^
應該沒有*
。
由於您要退回float
,因此接收方也應該有float
。 float*
表示浮動指針,與float
完全不同。
順便說一句,請確保您聲明-(float)getAngleBetween;
之前您撥打[self getAngleBetween]
。把它放在@interface
。如果之前未聲明,則該方法將被假定爲-(id)getAngleBetween;
。在x86返回id
和float
使用不同的API(objc_msgSend
vs objc_msgSend_fpret
),這可能是錯誤結果的原因。
你應該有:
float theAngleBetween = [self getAngleBetween];
擺脫了*的,那是唯一的對象,浮球是一個原始數據類型。
沒有*,它告訴我在初始化時不兼容的類型 – Lilz 2010-09-16 09:23:15
我聲明,在我的界面,它仍然告訴我,我在初始化中有不兼容的類型。 – Lilz 2010-09-16 09:29:37
@Lily:你有'#import'接口文件嗎? – kennytm 2010-09-16 09:30:43
是的,因爲我正在調用另一個我在界面中聲明的函數。 – Lilz 2010-09-16 09:32:53