ios - 核心数据数据库和应用程序重新安装

标签 ios core-data

当我们使用 xcode 重新安装应用程序时,iOS 中的核心数据数据库是否会删除所有现有行?

最佳答案

在 Xcode 中安装应用程序:

  1. 删除旧应用,然后安装:在这种情况下,核心数据数据库将被删除。
  2. 在旧应用存在时安装:在这种情况下,核心数据不会执行任何操作。

在大多数情况下,第二个是我们应该注意的。 如果您更改核心数据中的表,您应该告诉核心数据进行迁移。这就是您所需要的:

NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: @YES, 
                          NSInferMappingModelAutomaticallyOption: @YES};
NSError *error;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];

if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType 
                                               configuration:nil 
                                                         URL:storeUrl 
                                                     options:options 
                                                      error:&error]) {
    // Handle error
    NSLog(@"Problem with PersistentStoreCoordinator: %@",error);
}

NSMigratePersistentStoresAutomaticallyOption = YES; 就可以了。 我认为你应该始终这样做。

关于ios - 核心数据数据库和应用程序重新安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21641769/

相关文章:

iphone - 了解 Core Data 中的嵌套上下文

objective-c - 如何创建一个带有非零parentContext的NSManagedObjectContext?

ios - 在 App 关闭时关闭 Modal App store

ios - 尾随约束

ios - 在没有崩溃日志文件的情况下符号化崩溃

ios - SQLite 到核心数据迁移

ios - mergeChangesFromContextDidSaveNotification 后的 KVO 通知

ios - NSLayoutAttribute中的Top和TopMargin有什么区别?

ios - 找不到 WeatherKit 历史数据和归因问题

objective-c - 为什么我的可转换核心数据属性没有使用我的自定义 NSValueTransformer?