Swift:entityForName:无法在此模型中找到名为xxx的实体

时间:2016-02-01 08:20:23

标签: swift core-data xcode7

我创建了一个测试项目来从http://api.androidhive.info/contacts/获取数据一切正常,但是当我尝试将Web服务返回的数据保存到名为ContactDB的数据模型实体时 let rowDB = NSEntityDescription.insertNewObjectForEntityForName(NSStringFromClass(ContactDB.self), inManagedObjectContext: moc) as! ContactDB

我遇到此运行时崩溃: +entityForName: could not locate an entity named 'TestAlamofire5.ContactDB' in this model

我已尝试在SO中所有相关帖子中提到的所有可能的解决方案:
更改了实体名称
使用@objc属性为NSManagedOBject子类加前缀 删除了实体并创建了一个新实体 删除了整个数据模型并创建了一个具有新实体的新模型 清理了项目甚至创建了一个新项目

但无济于事......

我犯了什么错误才能搞这个崩溃?

P.S。测试项目can be downloaded here

2 个答案:

答案 0 :(得分:1)

最简单 - 也是预期 - 的方式是传递实体的文字名称。

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

答案 1 :(得分:0)

另请注意,Xcode可以自动设置Module名称空间。我不得不删除"当前产品模块"我的实体得到承认。 Xcode Module