2013-03-06 61 views
3

我正在一個App在Xcode和我已經得到的錯誤終止應用程序由於未捕獲的異常 'NSUnknownKeyException',原因:「[<UIApplication的0x9e37580>的setValue:forUndefinedKey:]:

「終止應用程序由於未捕獲異常'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:該類不是最近用於密鑰編碼兼容的密鑰值。「

。我一直在尋找幾個小時,我似乎無法找到與我的案例相符的答案。當我添加新對象並刪除.h文件中的一些對象時發生此錯誤,但我有雙三重四重檢查,確保每個插座都正確連接。沒有什麼是幻影連接或沒有連接,一切都很好。當我試圖刪除錯誤代碼中提到的密鑰時,它會轉到下一個密鑰並保持不變,基本上每個連接都不好。我已經正確地連接了視圖(我認爲),因爲當我在.h文件中添加新的插座時,我能夠在xib文件中看到它並將其連接,但是每次打開應用程序時,我仍然會看到此錯誤。

我最近更改了視圖控制器ID thingy到XcodeProjectViewController,並且我已經檢查了我的所有文件(h,m和xib)以查看它們是否匹配。

+1

您可能有一個名爲'achiev'的IBOutlet,並將它掛在IB中,然後刪除了該屬性,但該連接保留在IB中,您必須進入並刪除它 – 2013-03-06 20:01:25

+0

爲了使事情更容易,您可以在項目導航器中右鍵單擊您的xib/storyboard文件並選擇「打開爲 - >源代碼」並搜索「achiev」以查找違規鏈接 – 2013-03-06 20:05:09

+0

我已經考慮到了這一點,並且已經檢查過,但正如我所說的有雙重檢查,我實際上已經連接了H文件和Xib文件中的所有IBOutlets,在Xib文件中連接的所有文件在.h文件中都有一行代碼,並且如果我刪除了一個連接及其在xib文件,它會轉到下一個可用的鍵,並提供一個錯誤,即下一個鍵也不好,但它確實已正確連接。除非xib文件中的「連接檢查器」有其他方法才能查看連接 – 2013-03-06 20:05:44

回答

13

我在我的最新應用程序Label Dispenser PRO中遇到了此錯誤消息。這很煩人,因爲所有代碼好像好(因爲它們)。 (對於我的情況),問題是我指定(偶然?)XIB文件作爲Target的摘要區域中「iPad開發信息」部分的主界面。這裏是圖片來說明這個位置: enter image description here

刪除此字段解決了問題。我想這會發生,因爲編譯器是困惑的,因爲我是基於if語句在AppDelegate中評估「if(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone)」手動呈現XIB。

希望這可以幫助別人。乾杯。

+0

這是我的問題(Xcode 5),線索是異常發生在UIApplication中,而不是連接到XIB的視圖控制器。 – macasas 2013-11-15 11:56:14

+1

哈利路亞!你是一個拯救生命的人。我在XCode 5中遇到了同樣的問題,我從來沒有想到這一點。 – 2013-11-19 19:19:40

相關問題