2016-02-01 70 views
0

我創建了一個測試項目從http://api.androidhive.info/contacts/一切正常獲取數據不能找到名爲XXX的實體,但是當我嘗試保存由Web服務返回到一個名爲數據模型實體數據ContactDB通過
let rowDB = NSEntityDescription.insertNewObjectForEntityForName(NSStringFromClass(ContactDB.self), inManagedObjectContext: moc) as! ContactDB斯威夫特:entityForName:在這個模型

我得到這個運行時的崩潰: +entityForName: could not locate an entity named 'TestAlamofire5.ContactDB' in this model

我曾試圖所以在所有相關的帖子提到的每一個可能的解決方案:
改變了實體名稱
前綴NSManagedOBject子與@objc屬性
刪除的實體,創造了一個新的
刪除整個數據模型,創建一個新的一個新的實體
清潔項目,甚至創造了一個新的項目

但無濟於事......

什麼我做錯了什麼讓這個崩潰?

p.s.測試項目can be downloaded here

+0

難道只是一味'insertNewObjectForEntityForName(「ContactDB」,...'? – vadian

+0

哦,這真的不錯!!!!但爲什麼?? – JAHelia

+0

因爲該方法只是預計的實體的文本名稱和你的類型包括建設總是也是該課程的模塊('TestAlamofire5')。 – vadian

回答

1

最簡單的 - 和預期 - 的方式是通過實體的文本名稱。

let rowDB = NSEntityDescription.insertNewObjectForEntityForName("ContactDB", inManagedObjectContext: moc) as! ContactDB 
0

另請注意Xcode可以自動設置模塊名稱空間。我不得不刪除「當前產品模塊」,以便我的實體得到認可。 Xcode Module