首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apple Watch复杂的网络请求

Apple Watch复杂的网络请求
EN

Stack Overflow用户
提问于 2016-04-30 17:38:58
回答 1查看 754关注 0票数 1

我正在创建一个天气应用程序,从一个在线API中提取它的信息。

我能够在GlanceController和InterfaceController中成功地获得信息。但是,我有点不确定该怎么做才能解决这个问题。我可以在ComplicationController类中执行网络请求吗?

如果是的话,我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-01 01:50:00

您将遇到与从复杂数据源中异步获取数据有关的问题,主要是因为在时间线更新完成后接收到的数据。

苹果推荐你从应用程序的不同部分获取数据,并在任何复杂的更新之前提供这些数据。

数据源类的任务是尽快向ClockKit提供任何请求的数据。数据源方法的实现应该是最小的。不要使用数据源方法从网络获取数据、计算值或做任何可能延迟数据传递的操作。如果您需要获取或计算复杂的数据,请在您的iOS应用程序或WatchKit扩展的其他部分中这样做,并将数据缓存在复杂数据源可以访问的地方。数据源方法应该做的唯一一件事就是获取缓存的数据,并将其放入ClockKit所需的格式中。

其他接近它的方法:

  • 最好的方法,以更新你的复杂(从你的手机,一旦你收到更新的天气数据)是使用transferCurrentComplicationUserInfo
  • 或者,你可以让你的手表应用程序或者浏览一下它的最新天气信息,为下一次预定的更新做准备。

如果你绝对必须从复杂的事情中处理它:

您可以让计划的时间线更新、获取扩展来启动一个NSURLSession后台任务,以便异步地从您的天气服务下载信息。第一次(计划)更新将在没有新数据的情况下结束。一旦收到新的天气数据,您就可以执行第二次(手动)更新,使用刚刚收到的数据重新加载复杂的时间线。

我没有任何个人经验的方法,主要是因为不必要的需要背对背时间线更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36958103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档