zoukankan      html  css  js  c++  java
  • Xcode CoreData 存储报错问题。

    因项目接口变动,导致之前的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> .tabls
    Error: unknown command or invalid arguments:  "tabls". Enter ".help" for help
    sqlite> .databases
    Error: 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文件。

    具体方案 参考:http://stackoverflow.com

  • 相关阅读:
    JS中的prototype
    Php5.3的lambda函数以及closure(闭包)
    JavaScript事件委托的技术原理
    css 里层元素撑不开外层元素
    扩展VirtualBox虚拟机磁盘容量
    easyUI 条件查询 跟分页数据展示写在了一起的
    (转)Hibernate中关于多表连接查询hql 和 sql 返回值集合中对象问题
    有想去北京工作的的想法了
    第一次写oracle SQL 两个表链接查询
    第三天 SQL小记
  • 原文地址:https://www.cnblogs.com/boaosady/p/5756124.html
Copyright © 2011-2022 走看看