Передача поплавка "byref" в Objective C? - PullRequest
0 голосов
/ 26 апреля 2009

Есть ли способ передать float "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 Ответ

3 голосов
/ 26 апреля 2009

Подпись для вашего метода объявлена ​​как

- (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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...