我在哪里可以找到我的 iPhone 应用程序的核心数据持久存储?
Posted
技术标签:
【中文标题】我在哪里可以找到我的 iPhone 应用程序的核心数据持久存储?【英文标题】:Where can I find my iPhone app's Core Data persistent store? 【发布时间】:2010-05-09 23:38:52 【问题描述】:我正在深入研究 iPhone 开发,所以如果这是一个荒谬的问题,我提前道歉,但是在一个使用 Core Data 框架的新 iPad 应用程序项目中,这里是生成的用于创建 persistentStoreCoordinator 的代码...
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
if (persistentStoreCoordinator != nil)
return persistentStoreCoordinator;
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"ApplicationName.sqlite"]];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error])
/*
Replace this implementation with code to handle the error appropriately.
abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. If it is not possible to recover from the error, display an alert panel that instructs the user to quit the application by pressing the Home button.
Typical reasons for an error here include:
* The persistent store is not accessible
* The schema for the persistent store is incompatible with current managed object model
Check the error message to determine what the actual problem was.
*/
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
return persistentStoreCoordinator;
我的问题是……
-
我第一次运行应用程序时,如果ApplicationName.sqllite 数据库不存在,是否会自动创建它?如果没有,它是什么时候创建的?何时以编程方式将数据添加到其中?
一旦数据库确实存在,我在哪里可以找到该文件?我想用其他程序打开它,以便手动操作数据。
非常感谢您的帮助!我现在将继续研究这些问题。
【问题讨论】:
【参考方案1】:是的,如果ApplicationName.sqlite
数据库尚不存在,则将创建该数据库。它将位于您的应用程序的 Documents
目录中(假设这是您的 -applicationDocumentsDirectory
方法返回的内容)。
如果您在模拟器中运行它,您通常可以在~/Library/Application Support/iPhone Simulator
中找到应用程序数据。在 3.2+ SDK 上,不同的操作系统版本用于对使用特定 SDK 构建的应用程序进行分组,因此您需要进入相应的版本目录,然后进入 Applications
,然后找到应用程序的数字编码目录(几乎是试用版) -和-错误)。在那里可以找到Documents
目录和 sqlite 数据库。
如果在设备上运行,您可以转到管理器,选择您的设备(连接到系统时),然后转到“摘要”选项卡中的“应用程序”分组。单击应用程序名称旁边的披露箭头,您可以将应用程序数据从那里拖到一个目录中,以将应用程序的所有工作数据从设备上的应用程序中提取出来。
【讨论】:
谢谢,布拉德,你一整天都帮了大忙!【参考方案2】:商店是由
addPersistentStoreWithType:configuration:URL:options:error:
方法。使用
NSLog(@"store path: %@", storeUrl);
在applicationDocumentsDirectory
中查看存储的文件路径。
要下载和浏览您设备的整个applicationDocumentsDirectory
,请使用Xcode Organizer:选择您的设备,单击应用程序的显示三角形,然后单击应用程序包右侧的箭头。
【讨论】:
以上是关于我在哪里可以找到我的 iPhone 应用程序的核心数据持久存储?的主要内容,如果未能解决你的问题,请参考以下文章