当按下按钮时应用程序崩溃
所以这就是发生了什么,我在故事板中有两个场景,场景一个是登录表单,而场景二是一个调用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{
}
}
}
'NSInvalidArgumentException', reason: '-[TotalSMSAPP.ViewController1 activateLogin:]: unrecognized selector sent to instance 0x7f88d3424620'
此错误指出,虽然您已经定义login:
activateLogin:
被调用。如果您重命名该方法,可能会发生这种情况。删除按钮动作并重新连接@IBAction func login(sender: UIButton)
。
确保您有一个带有此标识符的segue。 也覆盖prepareForSegue方法,这将帮助您调试。
按下按钮时,它会尝试调用方法activateLogin:
,但您尚未提供。可能您将按钮连接到activateLogin:
操作,然后重命名它。
只需进入Interface Builder,删除对旧方法的引用,并改为使用新方法替代login:
。
哈哈哈欢呼。看起来,编辑在某个时候创建了两个不同的引用,可能是因为有人问我一个问题LOL让我分心。 *金发错误* :) – koharuai 2014-10-05 08:56:59