Почему Xcode может думать, что метод экземпляра является методом класса? - PullRequest
3 голосов
/ 12 сентября 2010

Я пытаюсь скомпилировать некоторый код, где у меня есть класс с именем Card.У него есть метод с именем

-(void)setSuit: (NSString *)suit

Это метод экземпляра, но когда я говорю [Card setSuit:@"Diamonds"]

Xcode говорит: warning: "Card" may not respond to method +setSuit

И моя программа не работает.Я думаю, что Xcode считает, что setSuit - это метод класса, как сказано в предупреждении, так как мне сказать, что я говорю о методе экземпляра?

Или, может быть, это не проблема вообще,Я действительно не знаю, поскольку я никогда не сталкивался с этим раньше.

Ответы [ 2 ]

5 голосов
/ 12 сентября 2010

Проблема здесь:

[Card setSuit:@"Diamonds"]

Если Card является классом, то приведенная выше строка попытается вызвать метод класса, а не экземпляра. Вместо этого вам нужно будет вызвать метод в экземпляре, скажем:

Card *card = [[Card alloc] init];
[card setSuit:@"Diamonds"];
5 голосов
/ 12 сентября 2010

Вы пытаетесь отправить -setSuit: в класс Card. Вы, вероятно, хотите отправить это сообщение в экземпляр из Card, а не в класс.

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