在Objective C中传递float“byref”?

时间:2009-04-26 19:37:27

标签: objective-c

有没有办法将浮点数“byref”传递给目标C中的方法?以下是我所得到的概述:

方法签名:

- (void) MyMethod: (float*) min max:(float*) max;

方法:

- (void) MyMethod: (float*) min max:(float*) max
{
}

尝试调用它:

float min1 = 0; float max1 = 0; 
[self MyMethod: min:&min1 max:&max1];

我收到以下警告,并且在尝试调用MyMethod时代码异常终止:

警告:'MyClass'可能无法响应'+ MyMethod:min:max:'

1 个答案:

答案 0 :(得分:3)

您方法的签名声明为

- (void) MyMethod: (float*) min max:(float*) max

但你称之为

- MyMethod:min:max:

...其中包括一个额外的'min:',它不在声明中。

尝试将您的主叫代码更改为

float min1 = 0; float max1 = 0; 
[self MyMethod:&min1 max:&max1];

并查看是否可以改善目标。

但是,我看到您的错误消息抱怨签名'+ MyMethod:min:max:',这也表示您尝试将消息发送到而不是<我是班级的实例;你必须纠正它。

最后,Objective-C代码中的方法选择器通常以小写字母开头;您可能希望阅读常见的Objective-C naming conventions