CoreData iOS App的Sqlite文件位置的位置

时间:2016-02-11 16:59:50

标签: ios objective-c sqlite core-data

我正在使用Objective-C和CoreData开发iOS应用程序。我在哪里可以找到在iOS设备上生成的sqlite文件?

3 个答案:

答案 0 :(得分:1)

如果商店使用持久文件,您甚至可以在代码

中获取它
//get you context, the coordinator, attached stores
NSManagedObjectContext *moc = [MyDataStore sharedDataStore].mainManagedObjectContext; //however you get the MOC
NSPersistentStoreCoordinator *coordinator = moc.persistentStoreCoordinator;
NSArray<NSPersistentStore*> *stores = coordinator.persistentStores;

//log it
for (NSPersistentStore *store in stores) {
    NSLog(@"%@", store.URL);
}

答案 1 :(得分:1)

适用于XCode 8.0(iOS 10)

通过在AppDelegate中的现有(didFinishLaunchingWithOptions)方法中添加以下代码,可以看到NSPersistentContainer创建的持久存储的路径: -

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)

    print(urls[urls.count-1] as URL) // look for doc. directory

    return true
}

转到打印日志中的路径,然后转到/ Library / Application Support文件夹。这是.sqlite(持久存储)文件的示例路径:

/ Users / Ashish / Library / Developer / CoreSimulator / Devices / F04D26BC-0AA9-4E25-87CC-E635BE86293A / data / Containers / Data / Application / 69873117-6AB0-4491-B3BA-302FE63050FB / Library / Application Support

答案 2 :(得分:0)

无论你决定把它放在哪里。你甚至不需要查找它,因为你已经掌握了这些信息。

当您致电addPersistentStoreWithType:configuration:URL:options:error:时,您传入的 URL 参数是持久性商店的位置。您可以通过NSManagedObjectContextNSPersistentStoreCoordinator进行查找,但为什么在您的应用中已有答案时会这样做?