XCode4 - 在哪里查找由核心数据创建的sqlite文件

时间:2011-06-28 13:42:29

标签: iphone sqlite core-data xcode4

我刚开始使用核心数据。我想设置一个预先填充的数据库。我在某处读到核心数据在运行核心数据应用程序时会创建一个sqlite文件。我不知道在哪里寻找它。

我按照blog上的说明进行操作,但未在指定目录/Users/<Username>/Library/Application Support/iPhone Simulator/User/Application/<Application GUID>/Documents/<database name.sqlite>的位置找到sqlite文件,也未在应用程序目录中找到。

这是我的persistentCoordinator代码。

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (__persistentStoreCoordinator != nil)
    {
        return __persistentStoreCoordinator;
    }

    NSString *storePath = [[[self applicationDocumentsDirectory] path] stringByAppendingPathComponent:@"coredata.sqlite"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if (![fileManager fileExistsAtPath:storePath]) {
        NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"coredata" ofType:@"sqlite"];
        if (defaultStorePath) {
            [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
        }
    }

    NSURL *storeURL = [NSURL fileURLWithPath:storePath];
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

    NSError *error = nil;
    __persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
    {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }    

    return __persistentStoreCoordinator;
}

4 个答案:

答案 0 :(得分:16)

对于我来说,这些文件都在~/Library/Application Support/iPhone Simulator/[SDK version]/Applications/[App GUID]/Documents,对于Xcode 3和Xcode 4都是如此。

如果您有多个SDK,请务必查看应用的所有不同SDK版本目录。

答案 1 :(得分:1)

对我来说,这是在whatMuregSaid / [Application Guid] / Library / Application Support / [AppName] /filename.sqlite

答案 2 :(得分:1)

请按照以下步骤操作:

  1. 在AppDelegate.swift的applicationDocumentsDirectory函数中添加以下代码:

    let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)

    // Look for this in the console, this will print out the location of the sqlite database, which you can then open with an SQLite viewer

    print("urls.last \(urls.last)")

  2. 在控制台中查找,这将打印出sqlite数据库的位置,打开终端并open whatever_the_location_path_was

  3. 下载SQLite viewer http://sqlitebrowser.org/

  4. 右键单击文件夹中的yourapp.sqlite文件,选择“使用下载的sqlitebrowser打开”

  5. 干杯!

答案 3 :(得分:0)

希望这对你有所帮助

  1. / Users / Username /然后按cmd + shift + G并写入/ Users / Username / Library,现在您将看到Library文件夹,然后转到Application Support / iPhone Simulator / 7.1(或7.1-64) /应用/ F84D4CC8-326E-4A2E-8A37-F1A755D6FCC4 /文档 你会看到三个文件,一个是.sqlite文件。

  2. 要查看此sqlite文件的结构和其他信息,最有效的方法是使用SQLITE MANAGER(添加firefox https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/)添加它,然后单击工具。