【发布时间】:2017-12-15 09:46:03
【问题描述】:
我在 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]
}
【问题讨论】:
-
郁闷了好久,想尽快保存!
-
错误信息很清楚。 Swift 区分大小写:
faceviewvsfaceView -
@vadian 哇...不可能!这很简单。
-
@vadian 我试着改成faveview,还是不行!
-
faveview(withv) 更糟糕 ;-) 仅更改名称是不够的。您必须断开 Interface Builder 中的死连接并连接正确的连接。
标签: ios swift key-value-observing