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