Objective c 目标c-浮点返回错误值

Objective c 目标c-浮点返回错误值,objective-c,floating-point,Objective C,Floating Point,我正在使用objective c并试图从函数中输出一个值。显然,我做错了什么,因为我收到了一个不正确的值 这是我的代码: -(float) getAngleBetween { float num = 0.0; return num; } 我这样称呼它: float *theAngleBetween = [self getAngleBetween]; NSLog(@"Angle.. = %f", theAngleBetween); 需要帮忙吗 float theAngleBetween = [

我正在使用objective 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)getAngleBetween[self-getAngleBetween]
之前进行编码>。将其放入
@界面
。如果之前没有声明,则将假定该方法具有类型
-(id)getAngleBetween。在x86上,返回一个
id
和一个
float
使用不同的API(
objc\u msgSend
vs
objc\u msgSend\u fpret
),这可能是错误结果的原因。

您应该:

float theAngleBetween = [self getAngleBetween];

去掉*,这仅适用于对象,float是一种基本数据类型。

不带*,它告诉我初始化中存在不兼容的类型我在接口中声明了这一点,但它仍然告诉我初始化中存在不兼容的类型。@莉莉:你导入接口文件了吗?是的,因为我正在调用我在接口中声明的另一个函数。