[英][UIView setText:]: unrecognized selector sent to instance 0x89625d0
[英][UIView setText:]: unrecognized selector sent to instance
当我运行应用程序并单击是按钮时,应用程序将崩溃。 但是“否”按钮工作正常。 有谁知道错误是什么?
这是错误:
2019-03-12 23:05:53.139631+0000 surveyPF[81734:12033947] -[UIView setText:]: unrecognized selector sent to instance 0x7fe1c4416eb0 2019-03-12 23:05:53.148796+0000 surveyPF[81734:12033947] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setText:]: unrecognized selector sent to instance 0x7fe1c4416eb0'
这是我的代码:
import UIKit
class FirstQViewController: UIViewController {
var IDtext: String?
var DateText: String?
var answer: String?
@IBAction func viewBtn(_ sender: UIButton) {
switch sender.tag {
case 0: answer = "Yes"
self.performSegue(withIdentifier: "firstSegue", sender: self)
case 1: answer = "No"
self.performSegue(withIdentifier: "secondSegue", sender: self)
default:
print("Nothing")
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "firstSegue", let dest = segue.destination as? SecondQViewController {
dest.IDtext = self.IDtext
dest.DateText = self.DateText
dest.answer = self.answer
} else if segue.identifier == "secondSegue", let dest = segue.destination as? ThirdQViewController {
dest.IDtext = self.IDtext
dest.DateText = self.DateText
dest.answer = self.answer
}
}
}
当您单击 Yes 时,您会转到SecondQViewController
一个实例。 似乎在该视图控制器的某个地方,您正在设置一些您希望具有text
属性的视图的text
属性(例如UILabel
、 UITextField
或UITextView
),但该视图控制器的故事板将该视图设置为UIView
而不是更具体的类类型。
您需要检查视图控制器的故事板中的视图,并查看哪个视图设置为普通的旧UIView
而不是实际具有text
属性的更具体类型的视图。
在我的情况下,问题是这样的(可能对其他人也有帮助)
我们有一个旧的 Objective-C 类,它继承了 UITextField:
@interface CustomTextField: UITextField
在故事板上,有人在 UIView 上设置了 Custom Class CustomTextField
。 不知何故,这多年来一直运行良好。
但是当我们将CustomTextField
迁移到 Swift 时(几乎是一对一的,没有进行重大更改),将自定义类设置为CustomTextField
的 UIView 开始崩溃,并出现相同的异常:
[UIView setText:]: 无法识别的选择器发送到实例...
所以解决方案是用实际的UITextField
替换故事板上的 UIView
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.