一直在寻找答案,但一切似乎都模糊或不清楚.
无论如何,只想知道功能的目的是什么:
widgetPerformUpdateWithCompletionHandler
Run Code Online (Sandbox Code Playgroud)
在今天的小部件中.
根据Apple的说法:
调用此方法可为窗口小部件提供更新其内容并在快照等操作之前重绘其视图的机会.当窗口小部件完成更新其内容(并在必要时重绘)时,窗口小部件应调用完成处理程序块,并传递相应的NCUpdateResult值.
快照什么时候发生?每当我调试扩展时,widgetPerformUpdateWithCompletionHandler总是在loadView之后被调用.那么当我已经在loadView中加载信息时,在此方法中显式重新加载信息的目的是什么?
根据这个网站:http://www.karlmonaghan.com/tag/today-widget/
在TodayViewController中,有两个地方需要从网络加载数据 - 创建窗口小部件时以及调用widgetPerformUpdateWithCompletionHandler时.对于前者,我在viewDidLoad中加载帖子,以便在窗口小部件显示时它们应该准备就绪.当iOS认为小部件在首次显示后将显示给用户时,将调用widgetPerformUpdateWithCompletionHandler,使小部件有机会更新显示的帖子.
与上述问题相同.
你如何正确解开正常和隐含的期权?
这个主题似乎有些混乱,我只想提供所有方法以及它们如何有用的参考.
目前有两种创建选项的方法:
var optionalString: String?
var implicitOptionalString: String!
Run Code Online (Sandbox Code Playgroud)
打开两者的方法是什么?另外,在展开期间!和使用?期间有什么区别?