目标c - float返回错误的值

时间:2010-09-16 09:18:26

标签: objective-c floating-point

我正在使用目标c并尝试从函数输出值。显然我做错了,因为我收到了错误的价值。

这是我的代码:

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

}

我打电话给它如下:

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

请帮忙吗?

2 个答案:

答案 0 :(得分:1)

float theAngleBetween = [self getAngleBetween];
//   ^

应该没有*

由于您要返回float,接收方也应该输入float类型。 float*表示指向float的指针,它与float完全不同。

顺便说一句,请确保在致电-(float)getAngleBetween; 之前声明[self getAngleBetween] 。把它放在@interface中。如果之前未声明,则假定该方法具有类型-(id)getAngleBetween;。在x86上返回idfloat使用不同的API(objc_msgSend vs objc_msgSend_fpret),这可能是错误结果的原因。

答案 1 :(得分:0)

你应该:

float theAngleBetween = [self getAngleBetween];

除去*,仅用于对象,float是原始数据类型。