ios segue无法识别的选择器发送到实例

时间:2014-06-29 15:13:41

标签: ios segue unrecognized-selector

我正在开发iOS应用程序并且在测试期间遇到了问题:当我尝试进入下一个ViewController时,应用程序崩溃了,我收到了以下消息:

2014-06-29 14:22:46.674 IOS2 Practica[55472:60b] -[Logger login:]: unrecognized selector sent to instance 0x9242230
2014-06-29 14:22:46.679 IOS2 Practica[55472:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Logger login:]: unrecognized selector sent to instance 0x9242230'

从其他情况看,我已经抬起头来,当我尝试使用“segue”切换到下一个ViewController时,可能会发生某些事情,但我无法确定确切来源。

我附加了我在主视图控制器中定义segue的代码段:

- (void)logger:(id)sender {
    NSString *user = self.username.text;
    NSString *pass = self.password.text;

    NSString * urlBase = @"http://www.v2msoft.com/clientes/lasalle/curs-ios/login.php?username=lluis&password=seguro";

    [JSONHTTPClient getJSONFromURLWithString:urlBase completion:^(id json,JSONModelError *err){

        JsonUser * user = [[JsonUser alloc]initWithDictionary:json error:nil];

        if(user.succeed) {
            self.user_id = user.user_id;

            [self performSegueWithIdentifier:@"Login" sender:self];
         } else {
             NSLog(@"error");
        }
     }];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if (_username.text.length == 0 || _password.text.length == 0) {
        [[[UIAlertView alloc] initWithTitle:@"Error"
                                    message:@"Algun dels camps és incorrecte o està buit!"
                                   delegate:self
                          cancelButtonTitle:@"Cancel"
                          otherButtonTitles:nil, nil]
         show];

    } else {
        Supermarket * supermercat = segue.destinationViewController;
        supermercat.user_id = self.user_id;
    }

}

提前感谢您对此主题的任何见解。

1 个答案:

答案 0 :(得分:1)

代码中的某处(不是您发布的位),您应该在login:实例上调用Logger方法。该方法未在Logger中定义,这就是应用崩溃的原因。

注意:末尾的Login::你可能已经定义了一个login方法(不带任何参数),但是你用一个参数调用它。或许您可能想要致电logger:

您可以尝试以下两点:要么找出调用login:方法的位置(在Storyboard中绑定某个按钮?),要么将logger:重命名为login:。< / p>