"This class is not key value coding-compliant for the key" Swift 中的错误

"This class is not key value coding-compliant for the key" error in Swift

我在 Swift 中收到此错误消息:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Faceit.ViewController 0x7f8f72501e40> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key faceview.'

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var faceView: FaceView! {
        didSet{
            updateUI()
        }
    }

    var expression = FacialExpression(eyes: .closed, mouth: .frown) {
        didSet {
            updateUI()
        }
    }

    private func updateUI() {
        switch expression.eyes {
        case .open:
            faceView?.eyesOpen = true
        case .closed:
            faceView?.eyesOpen = false
        case .squinting:
            faceView?.eyesOpen = false
        }
        faceView?.mouthCurvature = mouthCurvatures[expression.mouth] ?? 0.0
    }

    private let mouthCurvatures = [FacialExpression.Mouth.grin:0.5,.frown: -1.0,.smile:1.0,.neutral:0.0,.smirk:-0.5]

}

参见:Thread 1: signal SIGABRT Xcode 6.1

您必须进入 Interface Builder 并寻找一个(或多个)带有警告三角形的插座(按照 link 获取屏幕截图)。一旦你删除了那些坏的连接,你就可以 (1) 准备好了,因为你已经连接了你的新对象,或者 (2) 你需要建立新的连接,这样你就可以正确加载所有的元素并且你没有警告三角形。

打开你的故事板 > Select class 显示错误的 ViewController > 只需删除所有插座 > 并重新分配插座。 希望您的问题得到解决。这不是一个大问题,错误的是你有多个密钥或不同名称的密钥用于一个插座,特别是它的 faceview。

@vadian 告诉我如何解决这个问题。它工作,更改为 faceview,也重新连接到 Interface Builder。 (这很重要)!