我使用目标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