我正在调用一个需要String...
可变参数的方法,但它唯一允许从封闭函数接收的是一个普通的String
.
我的方法如下所示:
public func deleteKeys(keysReceived:String..., completionHandler:@escaping () -> Void)
{
RedisClient.getClient(withIdentifier: RedisClientIdentifier()) {
c in
do {
let client = try c()
client.delete(keys: keysReceived){}
completionHandler()
}
//...
}
}
编译错误是
Cannot convert value of type '[String]' to expected argument type 'String'
此方法 ( client.delete()
) 来自 Perfect-Swift 的 Redis API,因此我无法更改签名,但我可以更改封闭函数 (deleteKeys)。我也不能直接调用该函数,因为它在回调闭包中
关于如何将接收到的可变参数传递给封闭的可变参数函数的任何建议?我可以将数组分解为单个字符串并单独删除,但这似乎不是很有效