我是今天新来的分机,我有这个警告,有人知道如何匹配可选的要求吗?
实例方法“widgetPerformUpdate(completionHandler:)”几乎与协议“ncwidgetproving”的可选要求“widgetPerformUpdate(completionHandler:)”匹配
func widgetPerformUpdate(completionHandler: ((NCUpdateResult) -> Void)) {
// Perform any setup necessary in order to update the view.
// If an error is encountered, use NCUpdateResult.Failed
// If there's no update required, use NCUpdateResult.NoData
// If there's an update, use NCUpdateResult.NewData
let result = performFetch()
if result == .newData{
tableView.reloadData()
self.preferredContentSize = tableView.contentSize
}
completionHandler(result)
}
最佳答案
在参数类型之前写入@escaping
,以指示允许转义闭包。
func widgetPerformUpdate(completionHandler: (@escaping(NCUpdateResult) -> Void)) {
// Perform any setup necessary in order to update the view.
// If an error is encountered, use NCUpdateResult.Failed
// If there's no update required, use NCUpdateResult.NoData
// If there's an update, use NCUpdateResult.NewData
let result = performFetch()
if result == .newData{
tableView.reloadData()
self.preferredContentSize = tableView.contentSize
}
completionHandler(result)
}
此函数基本上采用闭包参数作为完成处理程序。函数在启动操作后返回,但在操作完成之前不会调用闭包闭包需要转义,以便稍后调用。
关于ios - 实例方法“widgetPerformUpdate(completionHandler :)”几乎与可选要求“widgetPerformUpdate(completionHandler :)”匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40166939/