我在Swift中一直收到这个错误信息。
由于未捕获异常'NSUnknownKeyException'而终止应用程序,原因是:"这个类的键值编码不符合键面视图。
'[<Faceit.ViewController 0x7f8f72501e40> setValue:forUndefinedKey:]:
这个类的键值编码不符合键面视图的要求'。
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]
}
你必须进入Interface Builder,寻找一个(或多个)有三角形警告的插座(按照链接进行截图)。一旦你删除了这些坏的连接,你要么(1)准备好了,因为你已经连接了你的新对象,要么(2)你需要进行新的连接,这样你就可以正确加载所有的元素,而且你没有警告三角形。
打开你的storyboard > 选择显示错误的ViewController类> 删除所有的outlet> 并重新分配outlet。希望你的问题能得到解决。这不是一个大问题,你错在一个outlet有多个键或不同的名称键,特别是它的faceview。
@vadian已经告诉我如何解决这个问题。它的工作,改变到faceview,也重新连接到界面生成器。(这个很重要)!