2010-10-14 136 views
4

我一直拉我的頭髮過去幾個小時試圖找出爲什麼insertNewObjectForEntityForName返回NSManagedObject即使我試圖插入我自己的類型的實體。insertNewObjectForEntityForName返回錯誤類型

事情我都檢查過一千次:

  • 類名設置爲在圖表設計師
  • 實體正確的值與另一個實體許多一對多的關係,製造出其他實體作品如預期,我確實得到正確的輸出,我發誓他們是相同的

這可能會發生什麼可能的原因?我不知道在哪裏從這裏看,谷歌並沒有多大幫助:(

EDIT(解決):

這次事件與版本做...我刪除了數據模型和再次重建它,一切都開始工作,之前有以前使用的幾個版本... 嘆息有時會問一個問題給出瞭如何找到解決的辦法

一個想法,我仍然困惑的是爲什麼正在發生,儘管現在已經解決了

+1

乾淨重建通常可以解決核心數據的意外問題。更改數據模型時,構建系統有點不妥 – 2010-10-14 06:23:17

回答

0

這與版本控制有關。 ..我刪除了數據模型,再重新創建它,一切都開始工作,之前有以前使用的幾個版本...嘆息有時問一個問題給出瞭如何找到解決的辦法

1

我曾經發生過這種情況,但它不是一個損壞的模型,它實際上是模型文件中實體定義中的錯字。

基本上,實體和屬性都是正確的,但在「類名」我的實體有一個錯字。這導致核心數據有足夠的信息來實際讀寫實體,但它不能實例化類(因爲它實際上並不存在我誤輸入的名稱)

7

我最終的想法在不同的解決方案中也會出現類似的情況。通過一系列不幸的事件(一個命名空間衝突強制更改我的一個實體),我最終得到了一個自定義實體,該實體的類在數據模型中設置爲NSManagedObject的默認值,而不是正確的自定義子類。因此,在你經歷刪除整個數據模型和重建它的麻煩之前(就像我剛纔那樣,感謝上帝的git分支),只需檢查以確保你的類仍然正確設置。

+0

這是我的解決方案。非常感謝你!我對此很難過。 OMG! – sudo 2013-08-11 21:20:56

+0

OMG!這也適用於我!這就解釋了我在生成.h和.m文件時遇到的問題。 – 2014-08-14 18:27:23

0

今天我刪除一些NSManagedObject子類的源文件,並從模型編輯器在Xcode再生後他們同樣的情況。

我已經檢查了project.pbxproj文件,發現有一些不一致的ID源文件對(可能Xcode的錯誤?)。

我已經成功通過刪除所有從項目模型進行修復,然後再添加他們(和我也手動刪除了一些來自project.pbxproj文件鏈接)。

謝謝你的提示。

0

今天有同樣的問題。經過2個小時的拉發現發現我只是不添加實體類源文件到目標!