首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iOS 5及更高版本上初始化NSManagedObjectMOdel失败

在iOS 5及更高版本上初始化NSManagedObjectMOdel失败
EN

Stack Overflow用户
提问于 2012-09-15 06:11:34
回答 2查看 219关注 0票数 0

我有一个项目,当我为iOS 4.x构建它时,它工作得很好,但是当我为iOS 5.x构建它时,它失败了,崩溃了。为了澄清,4.x版本在iOS 5.1上运行良好,但是当我在5.0或5.1上构建时,我得到了下面描述的崩溃。

代码语言:javascript
复制
- (NSManagedObjectModel *)managedObjectModel
{
    if (__managedObjectModel == nil)
    {
        __managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];  //crash  
    }

    return __managedObjectModel;
}

我检查了文档,假设提供了nil,因为参数应该是默认的主包。有没有人知道CoreData有没有什么变化会导致这种情况发生?

无论如何,我已经运行了“分析”工具,没有内存泄漏或任何异常情况被报告。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-16 01:00:01

我设法想出了一个变通的办法。我创建了一个新的单视图项目,然后复制生成的代码以将托管对象模型初始化到我的新项目中。我的直觉是,[[NSManagedObjectModel mergedModelFromBundles:nil]在iOS 5.1SDK中的工作方式不同,也许它无法找到我的数据模型,因为它没有存储在项目根目录中,而是存储在一个单独的" data“文件夹中。

代码语言:javascript
复制
- (NSManagedObjectModel *)managedObjectModel
{
    if (__managedObjectModel != nil)
    {
        return __managedObjectModel;
    }
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"PreferencesModel" withExtension:@"momd"];
    __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
    return __managedObjectModel;
}
票数 1
EN

Stack Overflow用户

发布于 2012-09-15 06:55:33

您实际上没有描述崩溃,也没有提供任何错误消息,但是下面的StackOverflow问题提供了一个崩溃的解决方案,这可能会有所帮助:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[__NSArrayM insertObject:atIndex:]: object cannot be nil

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12432631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档