我在这里的第一个问题,也是我的第一个应用程序:
我不断收到以下消息。我正在创建一个包含不同类别的测验应用。每当我点击某个类别时,它都会返回:
2014-03-21 16:40:20.810 US Government and Politics Quiz[35847:60b] -[InGame Category4]: unrecognized selector sent to instance 0x10ad530d0
2014-03-21 16:40:20.812 US Government and Politics Quiz[35847:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[InGame Category4]: unrecognized selector sent to instance 0x10ad530d0'
这是我的代码:
Categories.m
(IBAction)Button1:(id)sender{
[Category1 setTitle:@"Political Parties" forState:UIControlStateNormal];
Category1SelectedNumber = 1;
[[NSUserDefaults standardUserDefaults] setInteger:Category1SelectedNumber forKey:@"CategorySaved"];
}
-(IBAction)Button2:(id)sender{
[Category2 setTitle:@"Pressure Groups" forState:UIControlStateNormal];
Category2SelectedNumber = 2;
[[NSUserDefaults standardUserDefaults] setInteger:Category2SelectedNumber forKey:@"CategorySaved"];
}
InGame.m
-(void)loadCategory1{
if (@"CategorySaved" == 1){
switch (QuestionSelected) {
case 0:
QuestionText.text = [NSString stringWithFormat:@"What is the general Republican stance on abortion?"];
[Answer1 setTitle:@"Pro-abortion" forState:UIControlStateNormal];
[Answer2 setTitle:@"No stance at all" forState:UIControlStateNormal];
[Answer3 setTitle:@"Pro-life" forState:UIControlStateNormal];
[Answer4 setTitle:@"Mixture of both" forState:UIControlStateNormal];
Answer3Correct = YES;
break;
case 1:
QuestionText.text = [NSString stringWithFormat:@"What is the general Democrat stance on gay rights?"];
[Answer1 setTitle:@"Marriage should be between a man and woman" forState:UIControlStateNormal];
[Answer2 setTitle:@"Mixture of both" forState:UIControlStateNormal];
[Answer3 setTitle:@"No stance at all" forState:UIControlStateNormal];
[Answer4 setTitle:@"Marriage should be legal for all couples" forState:UIControlStateNormal];
Answer4Correct = YES;
break;
}
}}
-(void)loadCategory2{
if (@"CategorySaved" == 2) {
switch (QuestionSelected) {
case 0:
QuestionText.text = [NSString stringWithFormat:@"Which of these is NOT an ideological pressure group?"];
[Answer1 setTitle:@"American Conservative Union" forState:UIControlStateNormal];
[Answer2 setTitle:@"People for the American Way" forState:UIControlStateNormal];
[Answer3 setTitle:@"National Farmers Union" forState:UIControlStateNormal];
[Answer4 setTitle:@"American Civil Liberties Union (ACLU)" forState:UIControlStateNormal];
Answer3Correct = YES;
break;
case 1:
QuestionText.text = [NSString stringWithFormat:@"Which of the following is not a constitutional requirement to be President?"];
[Answer1 setTitle:@"Be at least 35 years old" forState:UIControlStateNormal];
[Answer2 setTitle:@"Be married to an American" forState:UIControlStateNormal];
[Answer3 setTitle:@"Be born in the USA" forState:UIControlStateNormal];
[Answer4 setTitle:@"Be a resident in the USA for at least 14 years" forState:UIControlStateNormal];
Answer2Correct = YES;
break;
}
}}
希望能解决我的问题所需要的一切。提前谢谢。
答案 0 :(得分:0)
你需要在游戏中分享你的游戏"代码,因为它试图在Category4
类型的对象上调用InGame
消息,该对象没有定义该方法。例外基本上说,"嘿这个对象(InGame),没有一个名为" Category4"的方法。
您至少需要 确保InGame
类上有这样的方法。
您可能仍有其他导致此异常的内存问题。在这种情况下,您需要共享更多代码。
答案 1 :(得分:0)
我看到loadCategory1
和loadCategory2
但没有Category4
选择器,这是InGame
实例试图调用的内容;因为它找不到它(因此未知选择器)它会崩溃。