我正在尝试学习如何为 Apple Watch 开发手表应用程序,但对我来说似乎有点困难:手表应用程序和复杂控制器之间应该如何共享数据?
我在网上看到的大多数示例都遵循以下顺序:
1 - 在 ExtensionDelegate 上下载数据,并在 InterfaceController 上使用;
2 - 获取 ComplicationController 从 ExtensionDelegate 获取数据
3 - 在 ExtensionDelegate 上添加一个后台任务,以便它下载将由 InterfaceController 和 ComplicationController 使用的更新数据,同时更新两者。
所以我的数据在 ExtensionDelegate 的集合中。我想知道:
1 - 谁应该在启动应用程序时首先让我的 ExtensionController 下载数据?我的 ComplicationController 还是我的 InterfaceController?我问这个是因为在 xcode 上每个都有一个模拟器,所以有时我不知道在启动应用程序时首先调用哪个模拟器。并发症应该仅在用户打开应用程序后才开始其生命周期,从而强制加载第一次数据,还是在安装应用程序后开始?或者应该在 ExtensionDelegate 上添加一个标志来标记是否没有下载数据、正在下载数据、有可用数据(即集合不为空),以便 ComplicationController 或 InterfaceController 可以触发第一次数据下载?
2 - 虽然我的后台下载任务工作,但我觉得超过几个小时,我的应用程序在打开时必须重新加载,就好像它之前没有打开过一样,从而触发了新的数据下载。它上面的数据与 ComplicationController 已经下载和显示的数据不同。解决这个问题的好策略是什么?关于我应该检查什么的任何指示?