博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xcode CoreData 存储报错问题。
阅读量:5103 次
发布时间:2019-06-13

本文共 1123 字,大约阅读时间需要 3 分钟。

因项目接口变动,导致之前的CoreData字段需要调整。于是记录下出错的流程和解决方案。步骤如下:

1. 先在 *****.xcdatamodeld 文件中添加需要调整的字段。并更新本地model实体。

2. 我的流程是接到消息后本地存储在CoreData里面,然后UI展示(具体消息推送和接收问题,之前已经做好了,不在这里讲解。)。因我是真机调试,收到消息推送后,但是一直无数据。于是想去本地sqlite里面查看是否已经将消息存储完毕,于是捕捉到路径并执行进入sqlite时问题来了:

sqlite3 /var/mobile/Containers/Data/Application/29DC033C-817A-4860-911D-0F110F9B38B4/Documents/JiangSuEchat.sqlite

执行以上语句是没问题的。但是却无法获取.database; 或 .tables;

错误如下:

sqlite> .tablsError: unknown command or invalid arguments:  "tabls". Enter ".help" for help
sqlite> .databasesError: unable to open database "/var/mobile/Containers/Data/Application/29DC033C-817A-4860-911D-0F110F9B38B4/Documents/JiangSuEchat.sqlite": unable to open database file

解决方案:

错误信息:无法打开数据库文件。

是我二了,因真机调试中,CoreData很明显是存储在手机里面的,我用电脑访问手机的路径SQLite,则不是很明显的错误么?所以将环境改为虚拟机调试后,重新获取到虚拟机的SQLite文件路径执行以上步骤即可查询数据了。

 

3. 解决以上问题,行动继续。编译项目。无问题。

   点击消息中心读取本地SQLite消息的时候又报错了。如下:

The model used to open the store is incompatible with the one used to create the store

解决方案:

因CoreData本来就作为数据值持久化存储使用的,在变更了里面数据字段后。导致冲突存在了。按如下操作即可解决这个问题:

  a.clear 项目文件。

  b.删除 虚拟机里面的app文件。

具体方案 参考:

转载于:https://www.cnblogs.com/boaosady/p/5756124.html

你可能感兴趣的文章
【读书笔记】【独立思考】2018-04-03(2)
查看>>
java 实现好看的图形验证码
查看>>
字符串_KMP算法(求next[]模板 hdu 1711)
查看>>
第八章 程序的分支结构
查看>>
随笔37 JVM内存
查看>>
HW2.9
查看>>
对象内存布局 (9)
查看>>
IOS第11天(4:UIDatePicker时间选择,和键盘处理,加载xib文件,代理模式)
查看>>
Delphi XE开发 Android 开机自动启动
查看>>
Delphi中Format与FormatDateTime函数详解
查看>>
c#数据库连接池
查看>>
hdu-5992 Finding Hotels(kd-tree)
查看>>
Alfresco 4 项目介绍
查看>>
[Database] 不知道表名和字段查找值=1234的数据.
查看>>
MySQL的高可用实现:MySQL系列之十四
查看>>
python之os模块
查看>>
重写FileUpload控件让它可以显示上传后的文件名
查看>>
SSO单点登录解决方案[转载]
查看>>
使用闭包跨域开发
查看>>
SourceTree下载与安装 ---记录一下,如果忘记了再拿来看看
查看>>