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

Posted

技术标签:

【中文标题】XCode4 - 在哪里寻找由核心数据创建的 sqlite 文件【英文标题】:XCode4 - where to look for sqlite file created by core data 【发布时间】:2011-06-28 13:42:28 【问题描述】:

我刚刚开始使用核心数据。我想设置一个预先填充的数据库。我在某处读到核心数据在运行核心数据应用程序时会创建一个 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;

【问题讨论】:

【参考方案1】:

这些文件在我的 ~/Library/Application Support/iPhone Simulator/[SDK version]/Applications/[App GUID]/Documents 中,对于 Xcode 3 和 Xcode 4 都适用。

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

【讨论】:

如何知道App GUID【参考方案2】:

对我来说,它位于 whatMuregSaid/[Application Guid]/Library/Application Support/[AppName]/filename.sqlite

【讨论】:

【参考方案3】:

按照以下步骤操作:

    在 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)")

    在控制台找这个,这会打印出sqlite数据库的位置,打开你的终端和open whatever_the_location_path_was

    下载SQLite查看器http://sqlitebrowser.org/

    右击文件夹中的yourapp.sqlite文件,选择用你下载的sqlitebrowser打开

干杯!

【讨论】:

【参考方案4】:

希望对你有所帮助

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

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

【讨论】:

以上是关于XCode4 - 在哪里寻找由核心数据创建的 sqlite 文件的主要内容,如果未能解决你的问题,请参考以下文章

xcode4.2在哪里查看Targets

我在哪里可以获得 Laravel 事件的完整列表(由核心库触发)?

我的核心数据实体在哪里?

如何告诉 CMake(通过 externalNativeBuild 调用)在哪里寻找库?

创建新的基于文档的核心数据项目时出现问题

如何在 xcode4 中为 iphone 分配默认横向图像