- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有这种特殊情况,我的应用程序在一段时间内运行良好,但在一段时间后不一致地崩溃。我在崩溃期间遇到的错误是“无法使用 nil 模型创建 NSPersistentStoreCoordinator”。
我尝试调试我的应用程序,发现 managedObjectModel
有时会返回 NULL
。火上浇油,这个场景一点都不符合。 managedObjectModel
有一段时间没问题。但是,突然它返回 NULL
...
这是我用来创建托管对象模型的代码。
- (NSManagedObjectModel *)managedObjectModel
{
if (managedObjectModel_ != nil) {
return managedObjectModel_;
}
NSBundle *newBundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"dataBundle" withExtension:@"bundle"]];
NSString *modelPath = [newBundle pathForResource:@"DataHouse" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
NSLog(@"managedObjectModel_ %@", [managedObjectModel_ entities]);
return managedObjectModel_;
}
正如您在上面看到的,由于一些特殊要求,我将我的 .xcdataModeld 文件放在一个单独的包 中并从那里引用它。我很震惊,需要一些帮助....谢谢
最佳答案
首先,确保您永远不会将 managedObjectModel_
重置为 nil
。只需在您的源代码中搜索“managedObjectModel_ =
”,唯一的结果应该在您发布的 managedObjectModel
代码中。
其次,确保 managedObjectModel_
无法从外部访问或(如果将 managedObjectModel
公开为属性)只读。
第三,确保管理核心数据栈的类只有一个实例。如果它是在主窗口 nib 中初始化的 UIApplication
委托(delegate),则不应以编程方式创建它。如果是单例,检查是否真的有它的单个实例。
当您绝对确定一切正确时,是时候进行更深入的挖掘了。您可以尝试在 GDB 中将观察点设置为 managedObjectModel_
。
您的代码中可能发生的最糟糕的事情是一种 memset
/memmove
操作,它们碰巧覆盖了您的 Core Data 堆栈管理器占用的内存。但是这种错误太随机了,不能总是命中给定的内存地址,所以我不会指望它。
关于iphone - managedObjectModel 为 nil(无法使用 nil 模型创建 NSPersistentStoreCoordinator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9212313/
只需使用 CoreData 创建一个新的 iPhone 应用程序。我的应用程序构建时没有任何警告或错误,并且其中也包含我的 .xcdatamodeld,它没有任何错误或警告。 出于某种原因,我的 ma
我想知道如何管理像这样的大型 Core Data ManagedObjectModel,但每个实体都有更多属性。 Proyectos(表示项目)和 Desarrolladores(表示开发人员)将是一
总结一下我所做的: 创建了一个名为 2048 的项目。 创建了 NSManagedObject 的子类 class BestScore: NSManagedObject { @NSManage
我正在使用 iOS 5.0 中的新 UIDocument 功能。我有一个使用多个不同数据模型(momd 文件)的现有应用程序。根据 UIManagedDocument 的文档,您可以覆盖 -(NSMa
我正在尝试将我的一个应用程序的特定部分迁移到一个框架中,以便我可以在我的应用程序本身和那些精美的新 iOS 8 小部件之一中使用它。这部分是处理我在核心数据中的所有数据的部分。移动所有内容并访问它非常
我有这种特殊情况,我的应用程序在一段时间内运行良好,但在一段时间后不一致地崩溃。我在崩溃期间遇到的错误是“无法使用 nil 模型创建 NSPersistentStoreCoordinator”。 我尝
我正在尝试快速创建 NSManagedObject 的子类。我在模型编辑器中创建了两个名为 Pages 和 Book 的实体,并生成了它们的类文件。这是两个类: @objc(Pages) class
我有一个使用 core-data 的 cocoa 应用程序,它现在是其托管对象模型的第四个版本。 我的托管对象模型包含抽象实体,但到目前为止,我已成功通过创建适当的映射模型并使用 addPersist
嗨,我正在观看斯坦福 CS193p iOS 9 核心数据讲座 使用 Core Data 创建一个新的 iOS 项目,并将 AppDelegate 的 Core Data 部分复制到另一个项目。 问题是
我是一名优秀的程序员,十分优秀!