coreData部分报错:This NSPersistentStoreCoordinator has no persistent stores.

最近在修改一个程序BUG的时候遇到一个问题coreData部分报错:This NSPersistentStoreCoordinator has no persistent stores.

但实际跑程序时。增删保存都没问题。

我花了很多的时间在问题抛出的地方在[contextsave:&error];

后来发现,早在初期化_persistentStoreCoordinator 时就报错了

if (![_persistentStoreCoordinator

addPersistentStoreWithType:NSSQLiteStoreType

configuration:nil

URL:storeUrl

options:nil

error:&error]) {

// Handle the error.

}

&error 显示的信息为The model used to open the store is incompatible with the one used to create

上网搜了下,大意是说可能在改变entities的atrributes时损坏了存储文件。直接把存储文件删除即可。

我试了下,果然就ok了。

另外两个人和我的现象是一样的,不过在storeUrl指定的地方根本没有文件夹,别说文件了。按照storeUrl

的路径把文件夹建好,也就ok了。

我还有个疑问,为什么实际跑画面的时候是好的。只有单体测试的时候有问题?

我又在跑画面的时候,跟进去看了下。实际跑画面的storeUrl的根路径与单体时不同,有一串看似是UUID的随机数。

估计是跑画面的时候有建新目录的权限。

而跑单体的时候既没有建目录权限,也没有删文件权限。所以当存储改变时会报错。

时间: 2024-08-29 17:16:49

coreData部分报错:This NSPersistentStoreCoordinator has no persistent stores.的相关文章

Core Data存储数据出错(This NSPersistentStoreCoordinator has no persistent stores (unknown))

Core Data存储数据的时候崩溃,崩溃信息: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo } span.s1 { } reason: 'This NSPersistentStoreCoordinator has no persistent stores (unknown).  It cannot perform a save operation.' 创建一个全局断点,发现最后断点停在存储协调器设置数据库URL的地方.

Xcode CoreData 存储报错问题。

因项目接口变动,导致之前的CoreData字段需要调整.于是记录下出错的流程和解决方案.步骤如下: 1. 先在 *****.xcdatamodeld 文件中添加需要调整的字段.并更新本地model实体. 2. 我的流程是接到消息后本地存储在CoreData里面,然后UI展示(具体消息推送和接收问题,之前已经做好了,不在这里讲解.).因我是真机调试,收到消息推送后,但是一直无数据.于是想去本地sqlite里面查看是否已经将消息存储完毕,于是捕捉到路径并执行进入sqlite时问题来了: sqlite

tomcat报错Exception loading sessions from persistent storage解决方案

现象:项目在重启时报错:严重: Exception loading sessions from persistent storage的问题.该问题的原因是tomcat的session持久化机制引起的,tomcat这个功能本身的用意在于重启tomcat后保持之前的session,但是在tomcat非正常关闭后,tomcat尝试恢复session时读取失败,就抛出错误,不影响系统使用. 解决方案: 如果需要避免这个问题关闭tomcat的持久化功能就就可以了,具体为修改conf下的server.xml

Crash以及报错总结

CoreData: Cannot load NSManagedObjectModel.nil is an illegal URL parameter 这是因为在工程中CoreData的命名和AppDelegate中使用的命名不同造成的,可能是自己修改了CoreData文件但是忘记修改AppDelegate中相应的字符串.将图片中的字符串改成和CoreData文件名一样就可以了. No such file or directory ...... 找不到某个文件 首先复制文件名 在Build Pha

oracle安装故障:完美解决xhost +报错: unable to open display “”

oracle安装 先切换到root用户,执行xhost + 然后再切换到oracle用户,执行export DISPLAY=:0.0 出现乱码执行export LANG=US_en 在这里给大家介绍下两种情况的常见问题: 一种是本地运行的命令,另一种则是远程ssh命令安装. DISPLAY科普 DISPLAY变量是用来设置将图形显示到何处.比如CENTOS,你用图形界面登录进去,DISPLAY自动设置为DISPLAY=:0.0表示显式到本地监视器,那么通过终端工具(例如:xshell)进去,运行

SQL查询字段添加括号报错:Operand should contain 1 column(s)

SQL语句:查询连个字段的信息 SELECT (menu_id,menu_captions) FROM bsdb.menulist a WHERE a.menu_id like ('2_'); 然后,因为这是在存储过程中的一个语句所以,在执行存储过程的时候编译不会报错,但是执行的时候却汇报错:Operand should contain 1 column(s):原因不好解释: 下面是官方发解释(MYSQL):https://dev.mysql.com/doc/refman/5.0/en/row-

安装linux 系统报错:No DEFAULT or UI configuration directive found 解决方法

在报错信息后面的boot命令行输入: /isolinux/vmlinuz initrd=/isolinux/initrd.img 如果不行 重新输入 /isolinux/vmlinuz initrd=/isolinux/initrd.img xdriver=vesa nomodeset boot:/isolinux/vmlinuz initrd=/isolinux/initrd.img boot: /isolinux/vmlinuz initrd=/isolinux/initrd.img xdr

解决 U盘安装Windows Server 2012 R2 报错

报错原因: 使用UltraISO刻录镜像时会更改U盘的文件格式为FAT32, 而Server 2012 R2的安装文件install.wim为5G多,故安装失败. 解决方法: 1.按照正常的方法刻录镜像到U盘: 2.更改U盘文件系统: 进入命令行模式,输入 convert f: /fs:NTFS (F盘为我的U盘所在盘符) 3.把install.wim重新拷贝到U盘对应目录

filebeat+kafka+SparkStreaming程序报错及解决办法

17/07/01 03:07:21 WARN RandomBlockReplicationPolicy: Expecting 1 replicas with only 0 peer/s. 17/07/01 03:07:21 WARN BlockManager: Block input-0-1498849640800 replicated to only 0 peer(s) instead of 1 peers 17/07/01 03:07:26 ERROR Executor: Exception