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

  • 相关阅读:
    云计算安全之传统安全业务连续性和灾难恢复
    如何降低云应用程序的风险并管理其保障措施
    映射函数
    numpy用法
    dataframe基础
    list用法
    可视化基础
    pycharm使用技巧
    时间用法
    merge()函数
  • 原文地址:https://www.cnblogs.com/boaosady/p/5756124.html
Copyright © 2011-2022 走看看