Swift 此类不符合键错误的键值编码

bur*_*aya 5 ios swift

由于未捕获的异常,我收到错误终止应用程序

'NSUnknownKeyException', reason: '[<KGM_IOS.NotEkle 0x7fcb5ee0cd40> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key notEkleTextView.'.
Run Code Online (Sandbox Code Playgroud)

我有一个名为“notEkle”的 XIB,在“notEkle”里面我有 UITextView,而 XIB 提供者是 ViewController。当我将此文本与控制器连接时,出现此错误。我将我的 XIB 加载到控制器中

let notEkleView: UIView =  NotEkle().loadNib() as UIView
Run Code Online (Sandbox Code Playgroud)

我将我的文本视图与控制器连接起来

@IBOutlet weak var notEkleTextView: UITextView!
Run Code Online (Sandbox Code Playgroud)

在连接 UITextview 和控制器之前我没有任何问题。

let notEkleView: UIView =  NotEkle().loadNib() as UIView
Run Code Online (Sandbox Code Playgroud)
let notEkleView: UIView =  NotEkle().loadNib() as UIView
Run Code Online (Sandbox Code Playgroud)

Yus*_* AK 3

定义 XIB 并以编程方式使用它有几个步骤。

  1. 首先,您需要创建同名的 XIB 文件和 Swift 文件。

  2. 根据需要进行设计,然后将文件的所有者连接为您在步骤 1 中定义的类名。

  3. 您需要定义一个通用的初始值设定项方法并覆盖两个初始值设定项(使用框架和编码器)。

  4. 将 XIB 中的整个视图连接为 Swift 类中的 IBOutlet。

  5. 实现通用初始化程序如下:

private func commonInitializer() {
    Bundle.main.loadNibNamed("testView", owner:self, options: nil)
    addSubview(contentView)
    contentView.frame = self.bounds
    contentView.autoresizingMask = [.flexibleHeight,.flexibleWidth]
}
Run Code Online (Sandbox Code Playgroud)
  1. 最后,您可以将 UIView 拖到任意位置并将其类设置为此自定义类。

有关更多详细信息,您可以在此处查看本教程