所以我正在使用一些库和其中一种方法,据说有返回值
let data2 = dataCollector.collectCardFraudData({ ( str:String) in })
但问题是返回值是 void 类型,但我可以看到其中存在的值,我检查了很多教程,他们建议更改返回类型,但由于这是一个库,我不我想我可以做到。有没有其他方法可以将该值转换为字符串?
我也是一个新的 Swift,所以请任何输入都会有帮助
谢谢
所以我正在使用一些库和其中一种方法,据说有返回值
let data2 = dataCollector.collectCardFraudData({ ( str:String) in })
但问题是返回值是 void 类型,但我可以看到其中存在的值,我检查了很多教程,他们建议更改返回类型,但由于这是一个库,我不我想我可以做到。有没有其他方法可以将该值转换为字符串?
我也是一个新的 Swift,所以请任何输入都会有帮助
谢谢
该函数没有返回值。Swift 等价物是
func collectCardFraudData(completion: @escaping (String) -> Void)
所以你必须用下面的语法来调用它。deviceData
作为参数传递,completion
完成后您必须调用。
dataCollector.collectCardFraudData { deviceData in
// do something with deviceData
completion()
}
我知道的不多。只是猜测。您的函数正在通过完成处理程序返回值。你应该像这样使用它
let data2 = dataCollector.collectCardFraudData({ str in
print(str) // str available here
})
由于 collectCardFraudData 有一个闭包,它在该块内为您提供“str”值,直接将其分配给“data2”会导致您出错。
试试下面的代码,如果它有效,请告诉我
var data2 = String()
dataCollector.collectCardFraudData({ str in
data2 = "\(str)"
})
谢谢