gpt4 book ai didi

ios - 如何使用闭包返回数组

转载 作者:行者123 更新时间:2023-11-30 12:39:58 24 4
gpt4 key购买 nike

我是 Swift 新手,我正在尝试使用闭包从 viewcontroller 获取结果

这是示例

class MD5Calculator {

static func imageChecksum(imageArray: [UIImage], onCalculated: @escaping () -> [String]){

DispatchQueue.global(qos: .userInitiated).async {

var array: [String] = []

for chosenImage in imageArray {
if let jpegData = UIImageJPEGRepresentation(chosenImage, 80) {
let checksum = jpegData.md5()
let chsum = checksum.toHexString()
array.append(chsum)
}
}

DispatchQueue.main.async {
//return array
}
}

}
}

我希望 md5 计算在后台进行,完成后将其传递给 viewController。

我创建了闭包,但我不知道如何返回它。我的问题是:

  1. 如何传递带有闭包的字符串数组

  2. 如何在 View Controller 中调用ImageChecksum

最佳答案

您对闭包的使用无效。您要发送回的数组应该是闭包的参数而不是返回类型。

这应该有效

class MD5Calculator {

static func imageChecksum(imageArray: [UIImage], onCalculated: @escaping ([String]) -> ()){

DispatchQueue.global(qos: .userInitiated).async {

var array: [String] = []

for chosenImage in imageArray {
if let jpegData = UIImageJPEGRepresentation(chosenImage, 80) {
let checksum = jpegData.md5()
let chsum = checksum.toHexString()
array.append(chsum)
}
}

DispatchQueue.main.async {
//return array
onCalculated(array)
}
}

}
}

编辑:在 ViewController 中像这样使用它

MD5Calculator.imageChecksum(imageArray: [imageArray]) { array in
// 'array' is your returned result
}

关于ios - 如何使用闭包返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42338338/

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