我正在尝试编写我的第一个iPhone-App,它应该是数据驱动的。 现在我在提供输出方面遇到了一些问题 - 而且我不确定插件在第一时间有多好......
所以我现在要做的事情(或者:我将对桌面/服务器应用程序做什么)是检查DB-Content并操纵它们进行测试...
但我无法弄清楚如何打开数据模型设置背后的数据库。 在互联网上,我找到了一些提示,我可以在.xcdatamodeld文件夹中找到sqlite文件。 所以我下载了SQLiteManager - 但是当我试图打开文件时,我得到一个“文件是加密”的消息。 我从未添加过密码,也不是我的root密码。
那么如何打开文件呢?或者在XCode中是否有解决方案?
答案 0 :(得分:1)
我面对同样的问题。我的调查线程将我引导到iOS开发人员库example。
主要思想是在我们的datamodel和* .sqlite文件之间创建协调器(链接)。我们可以观察,编辑,复制和导入这个文件。
- (NSManagedObjectContext *) managedObjectContext {
if (managedObjectContext != nil) {
return managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator: coordinator];
}
return managedObjectContext;
}
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
return managedObjectModel;
}
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"Locations.sqlite"]];
NSError *error;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
// Handle the error.
}
return persistentStoreCoordinator;
}
看来,在使用DB的过程中, .sqlite将在〜/ Library / Application Support / iPhone Simulator / 4.3.2 / Applications / 中创建 - * - * - * / Documents