• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 通读我的应用程序的核心数据文件(.sqlite、.sqlite-wal)

[复制链接]
菜鸟教程小白 发表于 2022-12-13 06:23:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试在我正在开发的 iOS 应用程序中浏览 Core Data 编写的数据。

应用运行一段时间后,我假设收集了一些数据,我现在希望查看数据并查看写入的内容。

我尝试通过从设备获取应用程序容器来获取和浏览 .sqlite 文件(Xcode > Devices > myApp > Download Container...)。

我得到了 db 文件,myAppDB.sqlitemyAppDB.sqlite-shmmyAppDB.sqlite-wal

当尝试查看它们时,似乎 .sqlite 是一个空表(除了一些通用的 CoreData/sqlite 东西),而 -wal 文件有所有的信息。

问题是我只能知道 wal 在使用 TextEdit 打开它时具有有用的数据,它无法以非常易读的方式显示它,并且当我尝试使用SQLite Manager 应用程序我警告说 wal 已加密,并要求我输入密码...

重要的是,我正在编写一个处理数据库的框架(模型文件和用于写入数据的代码在框架内),然后我让这个框架在我正在开发的应用程序中运行。这是我用来从框架内创建商店的代码(使用 MagicalRecord ):

NSBundle *frameworkBundle = [NSBundle bundleForClass:[self class]];
[MagicalRecord setDefaultModelNamed"myAppStore.momd" inBundle:frameworkBundle];

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent"myAppStoreDB.sqlite"];
[MagicalRecord setupCoreDataStackWithStoreAtURL:storeURL];

更新:我设法用 Core-Data-Editor 打开了 sqlite 文件。和 CoreDataUtility但它们都覆盖和删除 .wal 文件的内容,并显示一个空表...它确实有模型(实体名称/属性等)但没有数据。

我的 wal 文件是 873KB,但是当我使用这两个工具之一打开 sqlite 时,它变成了 0Bytes...

tl;dr

如何浏览我正在开发的应用的 Core Data 编写的信息?



Best Answer-推荐答案


好吧,由于某种原因,我不得不强制在我的商店中不使用 WAL(使用 @"journal_mode""DELETE" 解释为 here)。

然后我只得到了没有 smhwal 文件的 .sqlite 文件,并且能够打开它并使用2 个提到的工具(Core-Data-Editor 和 CoreDataUtility)。

我的猜测是,这与我从框架(创建 moc、创建实体、保存等)而不是从应用程序处理 CoreData 的事实有关。另一个猜测是它与我使用 MagicalRecord 的事实有关。 .

任何有关原因的见解将不胜感激...

关于ios - 通读我的应用程序的核心数据文件(.sqlite、.sqlite-wal),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29598830/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap