gpt4 book ai didi

ios - 核心数据 : "could not locate an entity named ... in this model" (Only on device)

转载 作者:搜寻专家 更新时间:2023-11-01 05:46:47 25 4
gpt4 key购买 nike

Core Data 有一个奇怪的问题...

我有一个模型,我将其他几个 NSManagedObjects 设置为另一个 NSManagedObject(一对一关系)的一部分。它在模拟器中运行良好,但当我在设备上测试时它崩溃了,给我这个错误:

2014-08-10 03:14:13.292 Prologue[4099:60b] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an entity named 'BookContents' in this model.' * First throw call stack: (0x184ad3100 0x1914b01fc 0x1847f2f84 0x1000794ec 0x10007846c 0x100068250 0x10006adf0 0x10006ae54 0x187ad10b0 0x187ad1044 0x187aba520 0x187ad0a44 0x187ad06d8 0x187acb370 0x187a9cb50 0x187a9ac40 0x184a937f4 0x184a92b50 0x184a90de8 0x1849d1dd0 0x18a671c0c 0x187b02fc4 0x100072fd4 0x100073014 0x191aa3aa0) libc++abi.dylib: terminating with uncaught exception of type NSException

BookContents 是一个与我的主要数据模型对象 Book 相关的模型。这是创建它的代码:

func createBookModel() -> Book
{
var book:Book = createFromEntity("Book") as Book;
if (book != nil)
{
book.title = "New Book";
book.bookContents = createFromEntity("BookContents") as BookContents;
saveContext();
}
else
{
Log.error("Failed to create Book.");
}
return book;
}

func createFromEntity(entityName:String) -> NSManagedObject
{
var obj:NSManagedObject = NSEntityDescription.insertNewObjectForEntityForName(entityName, inManagedObjectContext: moc) as NSManagedObject;
return obj;
}

我不确定这里出了什么问题,但是因为它在 emu 上运行而不是在设备上运行,所以可能是其他地方出了问题(可能是数据模型文件?)。然而,实体命名在任何地方都是正确的,我在数据模型中的实体类前面加上了项目的模块名称。

最佳答案

我们在为数据模型中的实体类使用项目的模块名称前缀时遇到了问题。相反,我们为 NSManagedObjects 的生成类添加了 @objc(ClassName)。

@objc(Book)
class Book: NSManagedObject {

@NSManaged var ...

}

如果不能解决您的问题,您可以尝试删除前缀并添加 @objc(ClassName)。

关于ios - 核心数据 : "could not locate an entity named ... in this model" (Only on device),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com