5

我希望能够Core Data从命令行查看我的 iPhone 模拟器应用程序中包含的内容。

我已经尝试“cd'ing”进入~/Library/Application Support/iPhone Simulator/7.0/Applications然后使用find . -name MyAppName它来查找这些目录中的哪些包含我的应用程序:

29EB3FF9-4691-474D-8B05-AB168899D528 4C25697B-04D9-4B48-BE5E-D1E9B2E03381 A1DF7916-AE39-4367-BFD2-22A8BAA2AFD2 BDB577A8-0BCF-4E58-896B-D4E704F261D0 CC3CC638-E39D-4AE7-8580-4E8BBD375DC4 D11D7C57-5578-4531-85BB-71AE6DD68B2F

然后我导航到该文件夹​​内的“Documents”文件夹,但我看到的唯一“sqlite”文件是 CoreDataTabBarTutorial.sqlite CoreDataTabBarTutorial.sqlite-shm CoreDataTabBarTutorial.sqlite-wal. (编辑:我实际上已经将我persistentStoreCoordinator的名字命名URLCoreDataTabBarTutorial.sqlite)。

我确定我的对象已插入“核心数据”,但似乎它们在 Interface Builder 启动之间不会持续存在。我正在尝试调试它。

4

6 回答 6

7

为了知道您的 sqlite 文件的路径,请按照以下步骤操作

1) 打开项目的 AppDelegate。

2)必须存在一个声明为的var(仅当您在创建项目时检查了使用CoreData):

懒惰的 var persistentStoreCoordinator: NSPersistentStoreCoordinator = {

3)找到这行类似于

让 url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("SingleViewCoreData.sqlite")

4)将此网址打印为

print("persistentStoreCoordinator url : (url)")

5) 运行你的应用程序在控制台中找到这个 url 6) 复制那个 url,打开终端,输入 cd 然后粘贴这个 url url 就像

(文件:///Users/prnjls/Library/Developer/CoreSimulator/Devices/A2B99983-4B71-4708-A515-7A87463ECF0C/data/Containers/Data/Application/F70EF393-FBF7-4598-B28B-9DAACBFE46F8/Documents/SingleViewCoreData。 sqlite)

7) 下载并安装免费应用程序以在此处查看 sqlite 数据

8) 在 Liya 上打开 单击文件 -> 新建 -> 在数据库类型中选择 sqlite -> 单击它附近的图标 -> 使用您复制的路径导航到该 sqlite 文件。

9)您可以找到您保存的所有实体点击任何实体名称,然后单击Run SQL Command 。而已 。希望它无论如何都会对某人有所帮助。

于 2016-08-10T12:33:59.077 回答
6

Core Data 使用 sqlite 保存在设备上。

您可以使用sqlite3 CoreDataTabBarTutorial.sqlite从命令行查看数据库。您将需要使用各种 sqlite3 命令和 SQL 来查看任何值。 查看文档

.table will list the tables
select * from ZYOURTABLENAME; (do not forget semi-colon) will display the rows.

有一个名为 Base 的 Mac 应用程序,它是一个用于查看 sqlite 数据库的 GUI 工具。

于 2013-08-17T15:54:26.610 回答
3

我知道的最简单的方法是使用CoreDataUtility

只需按照以下步骤操作:

  1. 下载最新的二进制文件https://github.com/yepher/CoreDataUtility/wiki
  2. 解压并运行应用程序
  3. 选择菜单->文件->新建项目
  4. 选择“iOS模拟器”选项卡
  5. 选择“模拟器应用程序”按钮
  6. 在下拉列表中选择您的应用,然后选择确定
  7. 选择“文件”按钮并向上导航两个目录
  8. 选择 Documents 并找到您的“持久性”文件(它将被命名为 CoreDataTabBarTutorial.sqlite 或您在代码中初始化的任何内容)
  9. 确保选择“SQL”
  10. 点击“打开”
  11. 单击文件->保存项目,这样您下次只需双击项目文件即可。
于 2013-12-30T23:37:55.777 回答
0

创建一个 Apple Automator bash 脚本并将其复制到下面,然后下载 DB Browser for SQLite 以打开核心数据

cd ~/Library/Developer/CoreSimulator/Devices/
cd `ls -t -d */ | head -n 1`data/Containers/Data/Application 
cd `ls -t | head -n 1`"/Library/Application Support/<APPNAME>"
open -a DB\ Browser\ for\ SQLite ./<AppName>.sqlite
于 2019-04-17T19:16:03.163 回答
0

我知道这是一个非常古老的问题,但我最近编写了一个小型简单库,可让您在调试应用程序时查看 Core Data Store 的内容。它在您正在处理的应用程序中为您提供了一个自定义弹出查看器,而不必下载 SQL 查看器在此处查看

添加到您的 Podfile

pod 'RWCoreDataViewer', :git => 'https://github.com/richmondwatkins/RWCoreDataViewer'

使您的托管对象成为 RWCoreDataInspector 协议的成员。(这里没有什么要实现的,只需将它包含在你的类声明中)

import Foundation
import CoreData
import RWCoreDataViewer

class MyEntity: NSManagedObject, RWCoreDataInspector {

}

要显示您的数据,只需粘贴:

RWCoreDataViewer.initialize(self.managedObjectContext)

就是这样。每当您想显示数据时,只需添加初始化程序,您将获得一个包含所有实体及其记录的自定义视图

于 2016-04-17T15:23:55.647 回答
-5

尝试显示隐藏文件: defaults write com.apple.Finder AppleShowAllFiles 1 && killall Finder 然后再次查找文件。

于 2013-08-17T16:26:07.173 回答