一直在寻找答案,但一切似乎模糊或不清楚。
无论如何,只想知道函数的目的是什么:
widgetPerformUpdateWithCompletionHandler
在今日小部件中执行。
根据苹果的说法:
调用此方法可使小部件有机会在执行操作(如快照)之前更新其内容并重绘其视图。当小部件完成其内容的更新(并在必要时重新绘制)时,小部件应调用完成处理程序块,并传递适当的NCUpdateResult值。
快照何时发生?每当我调试扩展时,始终在loadView之后调用widgetPerformUpdateWithCompletionHandler。那么,当我已经在loadView中加载信息时,以这种方法显式重新加载信息的目的是什么?
根据此网站:http : //www.karlmonaghan.com/tag/today-widget/
在TodayViewController中,有两个地方需要从网络加载数据-创建窗口小部件时和调用widgetPerformUpdateWithCompletionHandler时。对于前者,我在viewDidLoad中加载帖子,以便在小部件显示时它们已经准备就绪。当iOS认为小部件在首次显示后将显示给用户时,将调用widgetPerformUpdateWithCompletionHandler,使小部件有机会更新显示的帖子。
与上述相同的问题。
窗口小部件不会在您每次查看通知中心时创建,因此loadView
不会在每次显示时被调用。通知中心widgetPerformUpdateWithCompletionHandler
在认为需要更新小部件信息时调用。通过我自己的调试,它看起来像是在最初创建窗口小部件时就立即widgetPerformUpdateWithCompletionHandler
被调用了,因此您可以在那里进行所有加载,但是Apple建议您在生命周期的尽早开始加载过程。
如果您的窗口小部件显示的信息永不改变,则您无需在中进行任何操作widgetPerformUpdateWithCompletionHandler
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句