我試圖在迅速待辦事項應用從本教程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