开放式操纵.xcdatamodeld-File / SQLite的记录?

时间:2012-02-13 22:52:16

标签: iphone objective-c cocoa sqlite

我正在尝试编写我的第一个iPhone-App,它应该是数据驱动的。 现在我在提供输出方面遇到了一些问题 - 而且我不确定插件在第一时间有多好......

所以我现在要做的事情(或者:我将对桌面/服务器应用程序做什么)是检查DB-Content并操纵它们进行测试...

但我无法弄清楚如何打开数据模型设置背后的数据库。 在互联网上,我找到了一些提示,我可以在.xcdatamodeld文件夹中找到sqlite文件。 所以我下载了SQLiteManager - 但是当我试图打开文件时,我得到一个“文件是加密”的消息。 我从未添加过密码,也不是我的root密码。

那么如何打开文件呢?或者在XCode中是否有解决方案?

1 个答案:

答案 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