2013-02-08 69 views
0

這已被討論了很多,但沒有發現我找到了幫助我...我只想添加一個單一的屬性到一個單一的實體。因爲沒有丟失我的數據。將屬性添加到核心數據實體

To do that, I followed these steps

但我不認爲它的工作在所有。只要不嘗試使用新屬性,就沒有錯誤。但在我的核心數據模型中(當我在XCode中打開.xcdatamodel時)它就在那裏,甚至在我的實體的NSManagedObject子類中,新屬性也作爲屬性存在。但是,當我嘗試使用它,這種情況發生:

unrecognized selector sent to instance 0x74f8520

the entity Name is not key value coding-compliant for the key "isFavoriteName".'

的關鍵「isFavoriteName」是一個我剛纔added.Like我說,我做了所有的腳步。我想念什麼? 我認爲,新的模型版本沒有被使用,因爲當我刪除模型中的一些屬性,我的應用程序仍然工作,並且仍然顯示刪除的信息...我已經設置了當前的核心數據模型版本一個(步驟6)。

我希望你能幫助我!

尼克

編輯:我可能不得不改變代碼中的東西嗎?除了設置選項創建persistentStoreCoordinator ......當因爲我有,比方說myApp.xdatamodel和那裏面,我知道有myApp.xdatamodel和對myApp 2,xdatamodel ...但我我的代碼門坎做:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"myApp" withExtension:@"mom"]; 

_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; 

回答

3

這是正確的 - 您鏈接到的頁面在您的案例中省略了一個步驟。即使您創建了新版本的模型,您的代碼仍然按名稱加載舊版本。

不要只是改變它加載版本2雖然。做到這一點,而不是:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"myApp" withExtension:@"momd"]; 

這將看在momd文件夾,並得到任何當前版本爲。在這種情況下,它將獲得版本2.如果將來再次更改模型,它將得到當前的任何版本。

+0

嗨,感謝你的anwnser,但我看不出你和我的代碼之間的區別...? – Dafen 2013-02-09 10:25:44

+0

啊,我發現它:withExtension:@「媽媽」】應withExtension:@「momd」] ...這只是一個小的變化,我以前沒注意到。現在它工作了!非常感謝=) – Dafen 2013-02-09 11:29:02