2010-09-12 85 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实例,而不是该类。

相关问题