我试图在完成一个函数时返回一个简单的元组,如下面的代码所示:
func meditatorForId(id:Int, completion:((Meditator, Int)? -> Void)){
var counter:Int=0
for meditator in SanghaModelProvider.sharedProvider().meditatorsArray{
if meditator.id == id{
completion(meditator, counter)
return
}
counter+=1
}
completion(nil)
}
然而,我在电话中得到了额外的争论。在完成调用线上没有得到更多的解释。可能是什么问题?
答案 0 :(得分:1)
你试图用两个参数调用完成,但它应该是元组的一个参数:
completion((meditator, counter))
即:
let tuple = (meditator, counter)
completion(tuple)
如果您希望使用两个参数调用它,请将您的功能更改为:
func meditatorForId(id:Int, completion:((Meditator?, Int?) -> Void)) {
然后这将起作用:
completion(meditator, counter)
但你必须将第二个电话改为:
completion(nil, nil)