加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 从设备删除应用程序后无法使用nil模型创建NSPersisten

发布时间:2020-12-14 19:52:58 所属栏目:百科 来源:网络整理
导读:从设备删除我的应用程序后,我收到“无法创建具有nil模型的NSPersistentStoreCoordinator”错误.我在iPad设备上测试iPhone应用程序.我已经把这段代码用来检查我是否有AppDelegate.m中的文件: - (NSManagedObjectModel *)managedObjectModel { if (__managedO
从设备删除我的应用程序后,我收到“无法创建具有nil模型的NSPersistentStoreCoordinator”错误.我在iPad设备上测试iPhone应用程序.我已经把这段代码用来检查我是否有AppDelegate.m中的文件:

- (NSManagedObjectModel *)managedObjectModel {
    if (__managedObjectModel != nil) {
        return __managedObjectModel;
    }
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Name" withExtension:@"momd"];
    if ([[NSFileManager defaultManager] fileExistsAtPath:[modelURL path]]) {
        NSLog(@"%@",[modelURL path]); //This is printed because file exists
    }
    __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
    return __managedObjectModel;
}

问题是[NSManagedObjectModel initWithContentsOfURL]返回nil值.
我做了以下事情,没有成功:

>使用此__managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil]更改managedObjectModel实例化;
>清理构建文件夹和清理项目
>重新启动Xcode
>重新启动计算机
>将“妈妈”改为“妈妈”
> .xcdatamodeld位于Copy Bundle Resources和Compile Sources中
>重命名.xcdatamodeld并多次清理和关闭Xcode项目
>关闭并打开设备
>从以下位置删除文件夹:$cd / Users / john / Library / Developer / Xcode / DerivedData
>更改了sqlite名称以强制生成数据库
>从devine删除(再次)应用程序

我一直在寻找解决方案几个小时,我仍然找不到它.

解决方法

最后,经过两天试图解决这个问题,我在这里找到了解决方案:

How to create the magic .xcdatamodeld folder / package?

我现在正在完成一个其他开发人员启动的项目,似乎他没有将最新的更改推送到repo,但是这些更改都在设备的应用程序中,当我删除应用程序时我删除了右边的. xcdatamodeld文件.问题是我在项目中只有一个MyApp.xcdatamodel文件,这就是拥有一个妈妈空文件夹的原因.

为了创建正确的数据模型层次结构,解决方案非常简单:

>选择MyApp.xcdatamodel
>转到编辑器>添加模型版本……

这将MyApp.xcdatamodel文件嵌入到MyApp.xcdatamodeld中.现在,momd文件夹中有妈妈文件,应用运行正常.现在唯一的问题是我有两个MyApp.xcdatamodel,一个带有绿色选中图标,但两者都有相同的内容,所以没问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读