我有一个项目,当我为iOS 4.x构建它时,它工作得很好,但是当我为iOS 5.x构建它时,它失败了,崩溃了。为了澄清,4.x版本在iOS 5.1上运行良好,但是当我在5.0或5.1上构建时,我得到了下面描述的崩溃。
- (NSManagedObjectModel *)managedObjectModel
{
if (__managedObjectModel == nil)
{
__managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain]; //crash
}
return __managedObjectModel;
}我检查了文档,假设提供了nil,因为参数应该是默认的主包。有没有人知道CoreData有没有什么变化会导致这种情况发生?
无论如何,我已经运行了“分析”工具,没有内存泄漏或任何异常情况被报告。
发布于 2012-09-16 01:00:01
我设法想出了一个变通的办法。我创建了一个新的单视图项目,然后复制生成的代码以将托管对象模型初始化到我的新项目中。我的直觉是,[[NSManagedObjectModel mergedModelFromBundles:nil]在iOS 5.1SDK中的工作方式不同,也许它无法找到我的数据模型,因为它没有存储在项目根目录中,而是存储在一个单独的" data“文件夹中。
- (NSManagedObjectModel *)managedObjectModel
{
if (__managedObjectModel != nil)
{
return __managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"PreferencesModel" withExtension:@"momd"];
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return __managedObjectModel;
}发布于 2012-09-15 06:55:33
您实际上没有描述崩溃,也没有提供任何错误消息,但是下面的StackOverflow问题提供了一个崩溃的解决方案,这可能会有所帮助:
https://stackoverflow.com/questions/12432631
复制相似问题