繁体   English   中英

[UIView setText:]: 无法识别的选择器发送到实例

[英][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属性(例如UILabelUITextFieldUITextView ),但该视图控制器的故事板将该视图设置为UIView而不是更具体的类类型。

您需要检查视图控制器的故事板中的视图,并查看哪个视图设置为普通的旧UIView而不是实际具有text属性的更具体类型的视图。

在我的情况下,问题是这样的(可能对其他人也有帮助)

  1. 我们有一个旧的 Objective-C 类,它继承了 UITextField:

     @interface CustomTextField: UITextField
  2. 在故事板上,有人在 UIView 上设置了 Custom Class CustomTextField 不知何故,这多年来一直运行良好。

  3. 但是当我们CustomTextField迁移到 Swift 时(几乎是一对一的,没有进行重大更改),将自定义类设置为CustomTextField的 UIView 开始崩溃,并出现相同的异常:

    [UIView setText:]: 无法识别的选择器发送到实例...

所以解决方案是用实际的UITextField替换故事板上的 UIView

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM