2011-12-13 53 views
1

Xcode(4.2.1)根據項目的舊狀態創建二進制文件。 例如:我在過去聲明並使用了屬性「myProperty」。但後來我刪除了這個屬性並刪除了使用該屬性的所有代碼。當我構建並運行應用程序崩潰時,說「MyClass不是密鑰myProperty的關鍵值編碼」。 類似的事情出現在過去,而不僅僅是代碼。我用另一個同名的圖像替換了我的項目中的圖像文件。在項目的文件夾中,定義了新的圖像文件。但是,構建並運行後,它仍然顯示舊圖像。 我已經試過了:只需構建,然後運行;關閉並重新開放項目;關閉並重新啓動Xcode;重新啓動Mac。 有什麼建議嗎?Xcode根據項目的舊狀態創建二進制文件

對不起。該屬性仍然作爲xib中的引用存在。這是問題所在。

回答

2

只是爲了澄清:這可能是最常見的問題之一!如果在啓動時看到「MyClass不是密鑰值編碼 - 密鑰myProperty」,則表明您的nib文件中有一個名爲「myProperty」的插座。好的,這不是一個很好的錯誤信息,但你只需要知道這就是它的意思。這意味着,因爲當應用程序啓動並且nib加載並且nib加載機制試圖將該名稱與活動實例中的實際實例變量或訪問器進行匹配時,使用鍵值編碼,它不會找到它,並且會導致崩潰和那個消息。

有時發生這種情況是因爲您形成了插座,然後又改變了您的代碼。

有時是因爲所有者對象是錯誤的類,如This class is not a key value coding-compliantWhat does this mean? "'NSUnknownKeyException', reason: … this class is not key value coding-compliant for the key X"

(如果你真的真的真的想Xcode的是基於項目的老態創建一個二進制文件,徹底清理目標按照我的說明在這裏:How to Empty Caches and Clean All Targets Xcode 4