我试图在迅速待办事项应用从本教程here当我到达一根绕5分钟大关,我运行应用程序,并得到:@IBOutlet瓦尔斯威夫特
**终止应用程序由于未捕获异常'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:这个类不是关键notesTestView编码兼容的键值。'
我已经看到一些其他用户得到这个,但没有解决方法已经变得明显。我一直在寻找大约三天的时间来试图解决这个问题。
它与titleTextField和notesTextView变量有关。每当我使用'!'时在声明它们时,当我点击应用程序中的“+”时,Xcode会给我这个错误。如果我不使用'!',Xcode不会让我编译。如果我不使用'?'或'!',Xcode不会让我编译。有什么想法吗?
我想如下(Xcode中默认)来声明变量:
@IBOutlet var titleTextField: UITextField!
@IBOutlet var notesTextView: UITextView!
和访问他们像这样:
@IBAction func addButtonTapped(sender: AnyObject) {
var dataSet:NSMutableDictionary = NSMutableDictionary()
dataSet.setObject(titleTextField.text, forKey: "itemTitle")
dataSet.setObject(notesTextView.text, forKey: "itemNote")
}
我明白你的意思了,我确实摆脱了一些我曾经拥有过的垃圾店,但现在它说:“这个类别不是关键的NotesTestView编码的关键值编码。” – mpkostek 2014-10-02 17:05:11
“notesTestView”!=“ notesTextView”。那是你的问题。 – algal 2014-10-02 17:07:12
基本上,只要运行时抱怨某些键不符合KVC标准,那么无论是您还是xib反序列化机制都在寻找该对象上不存在的键。它可能是一个陈旧的出口挂在IB,或者你可能拼错了。 – algal 2014-10-02 17:08:43