gpt4 book ai didi

ios - 实例方法 'widgetPerformUpdate(completionHandler:)' 几乎匹配可选要求 'widgetPerformUpdate(completionHandler:)'

转载 作者:行者123 更新时间:2023-11-28 08:25:28 25 4
gpt4 key购买 nike

我是今天扩展的新手,我收到了这个警告,有人知道如何匹配可选要求吗?

Instance method 'widgetPerformUpdate(completionHandler:)' nearly matches optional requirement 'widgetPerformUpdate(completionHandler:)' of protocol 'NCWidgetProviding'

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com