iOS 8 使用 CoreData 时找不到 sqlite 文件

iOS 8 Can't locate sqlite File When using CoreData

我正在使用我的 iPhone 来 运行 项目。 这是我的代码:

  NSPersistentStoreCoordinator *persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];

    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSString *dataStorePath = [documentPath stringByAppendingPathComponent:@"NewsData.sqlite"];
    NSURL *dataStoreURL = [NSURL fileURLWithPath:dataStorePath];

    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:dataStorePath];
    NSLog(@"%@",fileExists);
    sqlite3 *db;
    if (sqlite3_open([dataStorePath UTF8String], &db) != SQLITE_OK) {
        sqlite3_close(db);

    }

布尔类型 'fileExists' 是正确的,但是当我使用 Finder 定位 sqlite 文件时,它不起作用。 任何人都可以帮助我吗?提前致谢。

当您在 iPhone 上 运行 时,您无法直接访问该文件,因为路径 dataStorePath 在您的设备上。

您可以通过 Xcode 下载应用程序容器:首先连接您的 iPhone。然后转到菜单中的Xcode->Window->设备,然后在左侧select您的iPhone。您的应用程序应该出现在 "Installed Apps" 列表中。 Select 它并单击设置按钮(在添加和删除按钮旁边)并单击 "Download Container..."。 Xcode 会问你要保存到哪里。然后在查找器中右键单击下载的容器,然后 select "Show Package Contents"。转到 AppData->Documents,您将看到您的 sqlite 文件 "NewsData.sqlite".

顺便说一句,如果你在模拟器中运行你可以直接用finder打开link。