在 iOS 应用更新中删除核心数据模型



我的问题与迁移有关。我无法进行轻量级迁移,因为属性类型和新关系有很多变化。我没有时间进行繁重的迁移,因为代码不是我的,需要更快的交付。

可行的解决方法是,当应用程序升级时,应用程序应删除旧数据和数据模型,因为数据没有用,可以再次从服务器下载。在应用程序上是否完成启动,获取.db URL,然后将其删除并在升级后首次重新创建?

经过一番研究,所有方法都指向轻量级迁移。如果有更好的方法,请协助。

-(void) removeCoreDataAndReset{
      NSError *error;
      NSPersistentStoreCoordinator *storeCoordinator = storeCordinator;
     for (NSPersistentStore *store in storeCoordinator.persistentStores) {
          [storeCoordinator removePersistentStore:store error:&error];
          [[NSFileManager defaultManager] removeItemAtPath:store.URL.path error:&error];
     }
  // Initialise managedobjectcontext , Store Coordinator etc
} 

此方法之后重新初始化所有内容,就像在statrt中所做的那样

若要删除持久性存储,需要删除:

  1. 实际的持久存储文件。它位于您放置的任何位置。当你打电话给addPersistentStoreWithType:configuration:URL:options:error:时,你告诉Core Data它在哪里,所以如果你不确定,请检查那里。

  2. 日志文件。它们将与持久存储文件具有相同的名称,但末尾添加了-wal-shm这非常重要,因为在大多数情况下,几乎所有现有数据都在这些文件中。

您可以使用 上的方法删除文件 NSFileManager .如果执行此操作,请在以任何方式访问核心数据之前执行此操作,即在创建任何类型的任何核心数据对象之前

最新更新