在已经启动的应用程序中移动数据到共享组

问题描述 投票:0回答:1

我的应用程序已经在App Store上了,但现在我正在创建一个Apple Watch扩展,这也意味着将数据存储在一个 Shared Group.

我如何将数据从当前存储的地方(Core Data & UserDefaults)对于已经下载了我的应用的客户,第一次启动新的更新?

什么是最高效、最不耗费资源的方式,而且只在老用户第一次打开新更新的时候进行?

ios core-data nsuserdefaults data-migration ios-app-group
1个回答
3
投票

我也遇到过类似的问题,不过只是用户默认值。我所做的是,当应用程序启动时,它先在共享组的位置寻找,如果失败,它就在旧的位置寻找,然后将其移动到新的位置。

这意味着它第一次只需要检查多个位置,类似这样的过程。

  • 用共享组名称创建UserDefaults。
  • 如果在共享套件中没有你所需要的键与值,那可能是用户在迁移后第一次启动的需要
  • 所以现在从标准的UserDefaults中获取所有的值,并把它们放到你用共享套件名称创建的UserDefaults中。

下次启动应用时,它会在共享套件中找到keysvalues,根本不需要看标准的UserDefaults。

© www.soinside.com 2019 - 2024. All rights reserved.