Метод Подпись Проблема - PullRequest
1 голос
/ 10 июня 2009

Я получаю сообщение об ошибке / предупреждение о том, что часть моего кода гласит: «Сообщения без подходящего метода Подпись, как предполагается, вернет« id »и примет«… »в качестве аргументов.) ' Я не понимаю, почему я получаю эту ошибку, поэтому мне нужна помощь, ниже приведена ссылка на эту часть кода в файле реализации.

http://fwdr.org/h8xf

Вот ошибка.

альтернативный текст http://snapplr.com/snap/qw1r

Спасибо:)

Ответы [ 2 ]

4 голосов
/ 10 июня 2009

Это предупреждение обычно означает, что ваша подпись может отличаться или вы не объявили прототип для вашего метода.

Например, вы могли сделать что-то вроде этого:

// Prototype
-(void) foo:(float)bar;

// Calling the function
int blargh = 3;
[myClass bar:blargh];

Вы видите, как подписи не совпадают? Обычно это проблема, когда я получаю предупреждение. Хотя, возможно, вы вообще пренебрегали его прототипом, что приводит к той же проблеме. Objective-c будет принимать любые сообщения, которые вы передаете объекту, даже если это технически не было указано вами.

2 голосов
/ 10 июня 2009

Похоже, что из вашего кода вы обращаетесь к свойству objectArray свойство из self. Есть ли у вас это определено в вашем файле .h?

@interface DragController : UIViewController
{
    NSArray* objectArray;
}
@property (nonatomic, retain) NSArray* objectArray;

Если @property отсутствует, ваш класс не отвечает на [self objectArray]. Вам нужно только свойство, если вам нужны другие объекты для доступа к нему. Если вы просто хотите получить доступ к переменной экземпляра, вы можете просто использовать objectArray, поэтому замените [[self objectArray] indexOfObject... на просто [objectArray indexOfObject..., и предупреждение должно исчезнуть. Если objectArray действительно является методом, он должен выглядеть следующим образом в вашем файле .h после раздела { instance variables }:

-(NSArray*)objectArray;

А в файле .m:

-(NSArray*)objectArray
{
    // return the array here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...