2010-09-12 2 views
3

Я пытаюсь скомпилировать некоторый код, где у меня есть класс под названием Card. Он имеет метод, называемыйПочему Xcode может считать метод экземпляра методом класса?

-(void)setSuit: (NSString *)suit

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

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

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

Возможно, это не проблема, я не знаю, как никогда раньше не встречал этого.

ответ

5

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

[Card setSuit:@"Diamonds"] 

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

Card *card = [[Card alloc] init]; 
[card setSuit:@"Diamonds"]; 
5

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

Смежные вопросы