gpt4 book ai didi

ios - 如何选择性地将值传递给 Swift 中的闭包?

转载 作者:搜寻专家 更新时间:2023-11-01 05:54:11 24 4
gpt4 key购买 nike

我有以下函数,它读取一些心率数据并接受闭包形式的回调,例如:

func readHeartRate(callback: ((samples: [HKQuantitySample]?, average: Double?, error: NSError!) -> Void)!){
// ...
// ERROR - call the callback with no samples or average
callback(samples: nil, average: nil, error: error)
})

现在,我将 samplesaveragenil 显式传回回调。

但是,由于 sampleserror 是可选的,并且由于我在闭包中明确声明了名称,所以我认为这是可能的,而不是:

callback(error: error)

但是,当我这样做时,xcode 会提示并抛出错误:

Missing argument for parameter 'samples' in call

有没有一种方法可以只使用必要的值来调用回调以避免使我的代码困惑?

最佳答案

来自 The Swift Programming Language :

Closure expression syntax can use constant parameters, variable parameters, and inout parameters. Default values cannot be provided. Variadic parameters can be used if you name the variadic parameter and place it last in the parameter list.

因此,能够使用可变数量的指定参数调用闭包的唯一方法是使用可变参数,我认为这不是您想要的。

关于ios - 如何选择性地将值传递给 Swift 中的闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29279038/

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