我正在使用目标c并尝试从函数输出值。显然我做错了,因为我收到了错误的价值。
这是我的代码:
-(float) getAngleBetween {
float num = 0.0;
return num;
}
我打电话给它如下:
float *theAngleBetween = [self getAngleBetween];
NSLog(@"Angle.. = %f", theAngleBetween);
请帮忙吗?
答案 0 :(得分:1)
float theAngleBetween = [self getAngleBetween];
// ^
应该没有*
。
由于您要返回float
,接收方也应该输入float
类型。 float*
表示指向float的指针,它与float
完全不同。
顺便说一句,请确保在致电-(float)getAngleBetween;
之前声明[self getAngleBetween]
。把它放在@interface
中。如果之前未声明,则假定该方法具有类型-(id)getAngleBetween;
。在x86上返回id
和float
使用不同的API(objc_msgSend
vs objc_msgSend_fpret
),这可能是错误结果的原因。
答案 1 :(得分:0)
你应该:
float theAngleBetween = [self getAngleBetween];
除去*,仅用于对象,float是原始数据类型。