- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我使用 Xcode .xcdatamodel 文件编辑器设置了一个实体。我创建了一个名为 Person 的实体,添加了一些属性,然后生成了一个 .m 文件来表示它。一切正常。
现在当我去写一行代码时:
Person * person = (Person*)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:managedObjectContext];
然后我得到:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'Person''
虽然我完全按照 Location 示例,我相信一步一步,但我认为我一定错过了某种关键的“注册”步骤,我告诉 Xcode 我的 Person 实体应该可以访问.. 而且我根本没有办法“初始化”managedObjectContext,Location 示例似乎也没有这样做。
最佳答案
您没有设置 MOC 几乎可以肯定是问题所在。最具体地说,这意味着您可能没有加载定义 Person 的 MOM(托管对象模型)。在你的代码中的某个地方,你应该有这样的东西:
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
像这样的:
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
像这样的:
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator: coordinator];
我只是从 Core Data 模板的 AppDelegate 中复制行(如果你创建一个使用 Core Data 的新应用程序,你会得到什么)。
如果您拥有所有这些,请确保您的 xcdatamodel 列在构建的编译源步骤中。当然还要确保 Person 实际上是您的 xcdatamodel 中的实体名称。实体名称与类不同,尽管它们通常设置为相同。
关于objective-c - insertNewObjectForEntityForName :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1780929/
在过去的几个小时里,我一直在努力找出为什么 insertNewObjectForEntityForName 返回 NSManagedObject 即使我正在尝试插入我的实体自己的类型。 我已经检查过一
我使用 Xcode .xcdatamodel 文件编辑器设置了一个实体。我创建了一个名为 Person 的实体,添加了一些属性,然后生成了一个 .m 文件来表示它。一切正常。 现在当我去写一行代码时:
我将 CoreData 与一个实体和该实体的两个属性一起使用。 实体: Binder 属性:名称、上次打开 、br>我可以毫无问题地插入实体的新对象,我也可以设置它的名称,但我无法设置它的 lastO
在数据库中插入数据时,我在核心数据中遇到了错误的访问问题,我还使用了 @try、@catch block ,但我找不到任何解决方案。我被困了 3 天,所以请帮助我解决这个问题或给我任何建议。 - (B
我正在尝试将一个可用的 CoreData 应用程序移植到 Swift。此代码失败: let moc = self.context NSLog("Entities: \(moc.pers
我只想将单个 Color 对象添加到我的 Core Data 存储中。我最好怎么做? 我可以这样做: Color *color = [NSEntityDescription insertNewObje
我一直在使用 Core Data,因为它是为 iOS 发布的,但我无法弄清楚我的一个实体的 insertNewObjectForEntityForName 方法调用发生了什么。当调用该方法时,它只返回
我有一个 AEUser 类,它是 NSManagedObject 的一个子类。该类有一个创建自身新实例的方法。对于默认目标,正常路由效果很好: static func newDefaultUser(m
我正在尝试将一些 RubyMotion 代码移至 Swift。到目前为止它有效。我不明白的是为什么不能将以下结果转换为 Document 类: var newObject : NSManagedObj
我对 CoreData 比较熟悉,并且已经使用它好几年了,几乎没有任何困难。突然间,我被一个错误弄得目瞪口呆。对于我的一生,我无法弄清楚为什么 insertNewObjectForEntityForN
我为我遇到的问题编写了一个最小的代码示例。我通过两种方式实现后台工作:手动生成线程和让 NSOperation 处理线程。在这两种情况下,我都为每个线程/操作创建NSManagedObjectCont
我的核心数据堆栈中有一个简单的实体(称为日记)。该实体有一个属性(名称) 我使用编辑器生成了 NSManagedObject 子类。我还确保类名称遵循 appName.DiaryEntry 格式 xc
我正在使用 objC 的核心数据书中的代码,但在尝试使用以下代码(NSManagedObjectContext 的扩展)将新对象插入托管对象上下文时遇到了一个奇怪的错误: /** Helper me
我有一个相当奇怪的案例,在尝试使用 Swift 时出现核心数据错误。我不确定它是来自 Swift(测试版错误?)还是我。但是,这是我的测试用例的设置(在 VTModelTests.swift 中)。
我相对精通 CoreData 并且已经使用它好几年了,几乎没有困难。对于我的生活,我无法弄清楚为什么 insertNewObjectForEntityForName:inManagedObjectCo
这个问题已经有答案了: How can I create instances of managed object subclasses in a NSManagedObject Swift exten
我会尝试揭露我的问题,因为它有点复杂。我使用 Core Data,但存储的数据有问题。当我使用这段代码时: NSManagedObjectContext *context = [appDelegate
[编辑] 在更精确地指出问题之后,我正在更改它以更简洁地解释我的问题是什么。 我正在为我的应用处理核心数据,但我很困惑。它每次都卡在这个方法中。没有崩溃,没有日志,什么都没有。它只是挂起。 - (vo
我在一个运行了很长时间的应用程序中发生了一个非常奇怪的错误。 我无法再在我的 CoreData 模型中创建我的实体之一。 当我在我的模型中创建一个特定实体并尝试使用 NSLog(@"%@", obj)
我是一名优秀的程序员,十分优秀!