我正在尝试编译一些代码,其中有一个名为Card的类。它有一个名为
的方法 -(void)setSuit: (NSString *)suit
这是一种实例方法,但是当我说的时候
[Card setSuit:@"Diamonds"]
Xcode说:warning: "Card" may not respond to method +setSuit
我的程序不起作用。我认为Xcode认为setSuit是一个类方法,正如它在警告中所说的那样,那么我如何告诉它我在谈论实例方法呢?
或许这根本不是问题,我真的不知道,因为我以前从未遇到过这个问题。
答案 0 :(得分:5)
您正在尝试将-setSuit:
发送到Card
课程。您可能希望将该消息发送到Card
的实例,而不是该类。
答案 1 :(得分:5)
问题在于:
[Card setSuit:@"Diamonds"]
如果Card
是类,那么上面的行将尝试在类上调用方法,而不是实例。你需要在一个实例上调用一个方法,比如说:
Card *card = [[Card alloc] init];
[card setSuit:@"Diamonds"];