我正在使用Objective-C和CoreData开发iOS应用程序。我在哪里可以找到在iOS设备上生成的sqlite文件?
答案 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
参数是持久性商店的位置。您可以通过NSManagedObjectContext
和NSPersistentStoreCoordinator
进行查找,但为什么在您的应用中已有答案时会这样做?