"无法识别的选择器发送到实例"在我的InGame课上

时间:2014-03-21 16:53:13

标签: objective-c unrecognized-selector

我在这里的第一个问题,也是我的第一个应用程序:

我不断收到以下消息。我正在创建一个包含不同类别的测验应用。每当我点击某个类别时,它都会返回:

    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;
}
}}

希望能解决我的问题所需要的一切。提前谢谢。

2 个答案:

答案 0 :(得分:0)

你需要在游戏中分享你的游戏"代码,因为它试图在Category4类型的对象上调用InGame消息,该对象没有定义该方法。例外基本上说,"嘿这个对象(InGame),没有一个名为" Category4"的方法。

您至少需要 确保InGame类上有这样的方法。

您可能仍有其他导致此异常的内存问题。在这种情况下,您需要共享更多代码。

答案 1 :(得分:0)

我看到loadCategory1loadCategory2但没有Category4选择器,这是InGame实例试图调用的内容;因为它找不到它(因此未知选择器)它会崩溃。