异步UIKit状态恢复

时间:2016-08-26 22:41:46

标签: ios uikit

我的应用程序使用核心数据,因此可能会因迁移而偶尔出现较长的启动时间。为了在发生这种情况时尝试改善体验,我会异步执行迁移,并且我的应用程序会启动加载视图控制器。

我遇到的问题是,当使用状态恢复时,iOS希望在调用application:willFinishLaunchingWithOptions:之后恢复应用程序状态,但这可能为时尚早,因为我可能还没有完成设置还有数据存储。当应用程序实际准备开始重新组装时,似乎没有任何异步通知iOS的API。

结果,我看到两个选项:

  1. 强制迁移在willFinishLaunchingWithOptions中的主线程上同步发生,状态恢复之前
  2. 让我的应用程序中的每个核心数据方法返回一个承诺并在后台执行 - 然后它们都可以链接到应用程序完成启动时履行的基本承诺
  3. 这两个选项都感觉相当差。一个显着阻碍用户体验,另一个迫使大部分代码库适应单个(应用程序启动时间)问题。是否有其他策略,或UIKit支持的方法?

    修改

    如果不清楚,两者之间的连接是我想保留(通过状态恢复)视图控制器,这些控制器显示来自核心数据的数据,这样当它们被恢复时,该数据被拉回核心数据和渲染。

0 个答案:

没有答案