2010-09-16 86 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