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