2013-08-17 61 views
5

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

我已经试过“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 

然后我浏览到这个文件夹中的“文档”文件夹,但我看到的唯一的“sqlite”文件是CoreDataTabBarTutorial.sqlite CoreDataTabBarTutorial.sqlite-shm CoreDataTabBarTutorial.sqlite-wal。 (编辑:我实际上已将我的persistentStoreCoordinatorURL命名为CoreDataTabBarTutorial.sqlite)。

我确定我的对象被插入到“核心数据”中,但它似乎不会在启动界面生成器之间持续存在。我试图调试。

+0

那么你*实际*意味着你想查看SQLLite-back CoreData存储的内容?我也对*非常困惑,但它似乎并没有在界面生成器启动之间持续下去*这真的是你的意思吗? – marko

+0

当您创建持久性存储时,请检查您使用的初始化类型和名称。 –

+0

谢谢,我将'persistentStoreCoordinator'的'URL'设置为'CoreDataTabBarTutorial.sqlite'。 –

回答

5

核心数据使用sqlite保存在设备上。

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

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

有一个Mac app called Base是用于观看SQLite数据库的GUI工具。

-4

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

2

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

只要按照下列步骤操作:

  1. 下载最新的二进制https://github.com/yepher/CoreDataUtility/wiki
  2. 解压并运行应用程序
  3. 选择菜单 - >文件 - >新建项目
  4. 选择 “iPhone模拟器” 选项卡
  5. 选择“模拟器应用程序”按钮
  6. 在下拉列表中选择您的应用程序并选择确定
  7. 选择“文件”按钮,导航两个目录
  8. 选择文件并找到自己的“持久性”文件(它将被命名为CoreDataTabBarTutorial.sqlite或者你在你的代码初始化)
  9. 确保“SQL”选择
  10. 单击“打开”
  11. 单击文件 - >保存项目,以便下次双击项目文件。
0

我知道这是一个超级老的问题,但我最近写了一个小的简单库,可以让您在调试应用程序时查看Core Data Store的内容。它给你你正在使用的应用程序中自定义弹出浏览器,而不必下载SQL观众Check it out here

添加到您的Podfile

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

让你的管理对象在RWCoreDataInspector协议中的一员。 (没有什么可以在这里实现只是包含在类声明)

import Foundation 
import CoreData 
import RWCoreDataViewer 

class MyEntity: NSManagedObject, RWCoreDataInspector { 

} 

要显示的数据只需粘贴:

RWCoreDataViewer.initialize(self.managedObjectContext) 

而且完蛋了。每当你想要显示的数据只需要添加的初始化,你会得到你所有的实体和他们的记录

4

为了了解你的sqlite的文件的路径的自定义视图,请按照下列步骤操作

1 )打开你的项目的AppDelegate。

2)必须存在与声明中的VAR为(仅当您选中使用CoreData而创建自己的项目):

懒VAR persistentStoreCoordinator:NSPersistentStoreCoordinator = {

3)查找这类似于

设URL = self.applicationDocumentsDirectory.URLByAppendingPathComponent(“SingleViewCoreD一个线ata.sqlite “)

4)打印此网址为

打印(” persistentStoreCoordinator网址:(URL)“)

5)运行你的应用程序找到的网址,控制台 6)复制该网址,开放端子,键入cd然后这个URL粘贴 URL像

(文件:///用户/ p rnjls /库/开发商/ CoreSimulator /设备/ A2B99983-4B71-4708-A515-7A87463ECF0C /数据/容器/数据/应用/ F70EF393-FBF7-4598-B28B-9DAACBFE46F8 /文档/ SingleViewCoreData.sqlite)

7)下载并安装一个免费的应用程序来查看sqlite数据here

8)打开Liya点击文件 - >新建 - >在数据库类型中选择sqlite - >点击附近的图标 - >导航到该sqlite文件使用您复制的路径。 9)你可以找到你保存的所有实体点击任何实体名称,然后点击运行SQL命令。 就是这样。 希望它能帮助别人。