如何查看核心数据表以及如何从真实设备中删除数据

Posted

技术标签:

【中文标题】如何查看核心数据表以及如何从真实设备中删除数据【英文标题】:How to see core data tables and how to delete the data from a real device 【发布时间】:2011-09-24 15:35:39 【问题描述】:

关于Core Data的两个问题: 1. 使用核心数据时是否可以看到实际存储的数据(数据库表)? 2.使用iPhone模拟器时,我可以通过重置模拟器来删除核心数据db。但是使用真实设备时如何删除核心数据数据库?

【问题讨论】:

您的问题的部分答案在这里:***.com/questions/4023954/iphone-core-data-simulator***.com/questions/2811207/… 【参考方案1】:

您的 Mac 带有一个命令行工具 sqlite3。您可以使用它对核心数据数据库进行查询。不确定这是否违反了任何许可协议中可能存在的任何反逆向工程规则。

您可以在开发过程中通过从设备中删除您的应用并重新安装来删除数据库以方便您。如果你不想通过删除应用来做到这一点,我认为你必须在你的应用中编写一些代码来删除它。

【讨论】:

【参考方案2】:

您可以使用任何 sqlite 工具(包括命令行 sqlite3 工具)直接查看 sqlite 商店。但是,(1)Core Data 使用自定义的未记录模式,因此查看存储并不能告诉您太多信息;(2)sqlite 存储文件本身的结构与托管对象在内存中的行为方式几乎没有关系。 Core Data 不是 sql 包装器。它只是将托管对象分开以将它们存储在 SQL 中。 SQL 只是一个选项,没有它,Core Data 也能正常工作。

要“删除核心数据数据库”,您只需删除持久存储文件。查看初始化persistentStoreCoordinator 的位置(在Xcode 模板中,它位于应用程序委托中。)持久存储的URL 将在那里。只需关闭 Core Data 堆栈,然后使用 NSFileManager 删除存储文件。然后重新启动 Core Data 堆栈。

【讨论】:

以上是关于如何查看核心数据表以及如何从真实设备中删除数据的主要内容,如果未能解决你的问题,请参考以下文章

真机核心数据问题

MySQL:25 磁盘文件中,40个bit位的数据头以及真实数据是如何存储的

如何清除/删除 iCloud 备份数据?

如何从数据数组中删除对象(核心数据)

如何从核心数据swift中删除项目3

如何在 swift 3 中从核心数据中删除对象