此问题已得到解决,感谢您的帮助
因此,我正在尝试通过编写应用程序并查找我需要知道的内容来自学xcode来编写iphone / ipod应用程序,因为我需要知道它。这个网站可能是最大的帮助,但这次我无法找到问题的答案,可能是因为对于有书的人来说这太简单了。
我正在尝试创建一个应用程序,它将从25个牌组中随机抽取10张牌。我创建了一个名为Dealer的类,其中包含所有牌和一个数组,其中包含对每个牌的引用作为成员数据,以及从数组中返回一张卡并将其删除的方法。这是我的方法代码
- (NSString *)drawDominion
{
//some code here
NSString *current = [dominionDeck objectAtIndex:i];
//more irrelevant code
return current;
}
然后在我的View Controller的一个动作方法中,我创建了一个我的类的对象并尝试调用drawDominion,但是它给了我错误“Receiver type'Dealer'例如消息没有声明一个带有选择器'drawDominion'的方法
- (IBAction) Dominion
{
Dealer *deal = [[Dealer alloc] init];
NSString *testStr = [deal drawDominion];
}
这是我尝试调用drawDominion的代码。我不知道我在这里做错了什么,我昨天刚拿起xcode,从那时起它就是一场艰苦的战斗。感谢您提供的任何帮助。
回答你的一些回复: 好吧,我没有制作Dealer.h但是我有点捎带现有viewController.h中的接口,这可能导致我的问题吗?它在@end之后开始,已经在那里定义了类,它看起来像这样。
@interface Dealer : NSObject
-(NSString *) drawDominion:(NSString**)array;
-(NSString *) drawIntrigue:(NSString**)array;
-(NSString *) drawBoth:(NSString**)array;
@end
我想我也忘了将实例变量放在.h中,但编译器似乎没有抱怨。我应该把它们放在那里吗?
答案 0 :(得分:1)
您是否已将drawDominion方法的原型添加到Dealer.h?你应该有像
这样的东西@interface Dealer : NSObject {
// instance variables here
}
-(NSString*)drawDominion;
@end
在Dealer.h中 然后,当您#import“Dealer.h”时,编译器知道经销商将拥有drawDominion方法。