【发布时间】:2014-09-29 21:27:33
【问题描述】:
一直在寻找答案,但一切似乎都含糊不清。
反正就是想知道这个函数的用途是什么:
widgetPerformUpdateWithCompletionHandler
在今天的小部件中。
根据Apple:
调用这个方法是为了给一个小部件一个更新它的机会 内容并在快照等操作之前重绘其视图。 当小部件完成更新其内容(和重绘,如果 必要),小部件应调用完成处理程序块, 传递适当的 NCUpdateResult 值。
快照何时发生?每当我调试扩展时,widgetPerformUpdateWithCompletionHandler 总是在 loadView 之后被调用。那么当我已经在loadView中加载信息时,在这个方法中显式地重新加载信息的目的是什么?
据本网站:http://www.karlmonaghan.com/tag/today-widget/
TodayViewController中有两个地方需要加载 来自网络的数据 – 创建小部件的时间和时间 widgetPerformUpdateWithCompletionHandler 被调用。对于前者,我 在 viewDidLoad 中加载帖子,以便它们应该准备就绪 小部件显示。当 iOS 认为小部件将显示到 首次显示后的用户, 调用 widgetPerformUpdateWithCompletionHandler 给小部件一个 有机会更新显示的帖子。
与上述相同的问题。
【问题讨论】:
-
cool 刚刚意识到 karl monaghan 居然发现了这个问题
-
来自appcoda.com/app-extension-programming-today 系统会拍摄小部件的快照并定期尝试更新它。如果更新成功,该函数使用 NCUpdateResult.NewData 枚举调用系统提供的完成块。如果更新不成功,则使用现有快照。
标签: widget ios8 ios-app-extension