Objective c 目标c-浮点返回错误值
我正在使用objective 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 = [
-(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
vsobjc\u msgSend\u fpret
),这可能是错误结果的原因。您应该:
float theAngleBetween = [self getAngleBetween];
去掉*,这仅适用于对象,float是一种基本数据类型。不带*,它告诉我初始化中存在不兼容的类型我在接口中声明了这一点,但它仍然告诉我初始化中存在不兼容的类型。@莉莉:你导入接口文件了吗?是的,因为我正在调用我在接口中声明的另一个函数。