我正在创建一个天气应用程序,从一个在线API中提取它的信息。
我能够在GlanceController和InterfaceController中成功地获得信息。但是,我有点不确定该怎么做才能解决这个问题。我可以在ComplicationController类中执行网络请求吗?
如果是的话,我该怎么做呢?
发布于 2016-05-01 01:50:00
您将遇到与从复杂数据源中异步获取数据有关的问题,主要是因为在时间线更新完成后接收到的数据。
苹果推荐你从应用程序的不同部分获取数据,并在任何复杂的更新之前提供这些数据。
数据源类的任务是尽快向ClockKit提供任何请求的数据。数据源方法的实现应该是最小的。不要使用数据源方法从网络获取数据、计算值或做任何可能延迟数据传递的操作。如果您需要获取或计算复杂的数据,请在您的iOS应用程序或WatchKit扩展的其他部分中这样做,并将数据缓存在复杂数据源可以访问的地方。数据源方法应该做的唯一一件事就是获取缓存的数据,并将其放入ClockKit所需的格式中。
其他接近它的方法:
transferCurrentComplicationUserInfo
。如果你绝对必须从复杂的事情中处理它:
您可以让计划的时间线更新、获取扩展来启动一个NSURLSession后台任务,以便异步地从您的天气服务下载信息。第一次(计划)更新将在没有新数据的情况下结束。一旦收到新的天气数据,您就可以执行第二次(手动)更新,使用刚刚收到的数据重新加载复杂的时间线。
我没有任何个人经验的方法,主要是因为不必要的需要背对背时间线更新。
https://stackoverflow.com/questions/36958103
复制相似问题