这就是正在发生的事情,我有两个场景在我的故事板上,一个场景是一个登录表单,第二个场景是一个调用一个NSURLSession的表单(但是这个场景不是问题)
正在发生的是,当我点击第一个场景的登录按钮,应用程序崩溃,应该发生的是登录凭据应该与(当前硬编码的)用户凭据进行检查,如果它们是正确的,一个segue应该将用户发送到第二个场景。
这是错误日志数据;
2014-10-01 17:24:51.454 TotalSMSAPP15443 15443:446622 -TotalSMSAPP.ViewController1 activateLogin::未被识别的选择器发送到实例0x7f88d3424620 2014-10-01 17:24:51.459 TotalSMSAPP15443 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{
}
}
}发布于 2014-10-01 09:44:20
'NSInvalidArgumentException', reason: '-[TotalSMSAPP.ViewController1 activateLogin:]: unrecognized selector sent to instance 0x7f88d3424620'
此错误声明在定义了activateLogin:时调用了login:。如果您重命名该方法,则可能会发生这种情况。删除按钮动作,并重新连接它与@IBAction func login(sender: UIButton)。
发布于 2014-10-01 09:44:02
确保您有一个带有此标识符的segue。还会重写prepareForSegue方法,它将帮助您调试。
发布于 2014-10-01 09:56:59
当按下按钮时,它尝试调用方法activateLogin:,但您还没有提供一个方法。可能是将按钮连接到activateLogin:操作,然后重命名它。
只需进入Interface,删除对旧方法的引用,转而创建一个新的login:方法。
https://stackoverflow.com/questions/26138213
复制相似问题