按下按钮时应用程序崩溃

时间:2014-10-01 09:30:01

标签: ios swift xcode6

所以这就是正在发生的事情,我的故事板中有两个场景,一个是登录表单,第二个场景是一个调用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{


        }
    }

}

3 个答案:

答案 0 :(得分:2)

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

此错误表明在您定义activateLogin:时调用了login:。如果重命名该方法,可能会发生这种情况。删除按钮操作,然后使用@IBAction func login(sender: UIButton)重新连接。

答案 1 :(得分:0)

确保您拥有带此标识符的segue。 并且还覆盖prepareForSegue方法,它将帮助您进行调试。

答案 2 :(得分:0)

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

只需进入Interface Builder,删除对旧方法的引用,然后将新方法改为login: