2014-10-01 137 views
1

所以这就是发生了什么,我在故事板中有两个场景,场景一个是登录表单,而场景二是一个调用NSURLSession的表单(该场景不是问题但是)当按下按钮时应用程序崩溃

发生什么事情是,当我点击第一个场景上的登录按钮时,应用程序崩溃,应该发生的事情是登录凭据应该针对(当前硬编码的)用户凭证进行检查,如果它们是正确的,一个segue应该将用户发送到第二个场景。

这是错误日志数据;

2014-10-01 17:24:51.454 TotalSMSAPP [15443:446622] - [TotalSMSAPP.ViewController1 activateLogin:]:无法识别的选择发送到实例0x7f88d3424620 2014-10-01 17:24:51.459 TotalSMSAPP [ 15443:446622] *终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因: ' - [TotalSMSAPP.ViewController1 activateLogin:]:无法识别的选择发送到实例0x7f88d3424620'

这适用于有问题的代码现场;

import Foundation 
import UIKit 

class ViewController1: UIViewController { 

    @IBOutlet var username: UITextField! 
    @IBOutlet var password: UITextField! 


    @IBAction func login(sender: UIButton) { 
     if(username.text == "koharu" && password.text == "test"){ 
      self.performSegueWithIdentifier("toSMS",sender: self) 
     }else{ 


     } 
    } 

} 

回答

2

'NSInvalidArgumentException', reason: '-[TotalSMSAPP.ViewController1 activateLogin:]: unrecognized selector sent to instance 0x7f88d3424620'

此错误指出,虽然您已经定义login:activateLogin:被调用。如果您重命名该方法,可能会发生这种情况。删除按钮动作并重新连接@IBAction func login(sender: UIButton)

+0

哈哈哈欢呼。看起来,编辑在某个时候创建​​了两个不同的引用,可能是因为有人问我一个问题LOL让我分心。 *金发错误* :) – koharuai 2014-10-05 08:56:59

0

确保您有一个带有此标识符的segue。 也覆盖prepareForSegue方法,这将帮助您调试。

0

按下按钮时,它会尝试调用方法activateLogin:,但您尚未提供。可能您将按钮连接到activateLogin:操作,然后重命名它。

只需进入Interface Builder,删除对旧方法的引用,并改为使用新方法替代login:

相关问题