gpt4 book ai didi

ios - main.async 中的 block 仅在 global.async block 完成后执行

转载 作者:行者123 更新时间:2023-11-28 09:22:52 25 4
gpt4 key购买 nike

我正在从我的库中调用一个函数,它应该更新应用程序中的一些 UI:

DispatchQueue.global().async {
autoreleasepool {
print("is main thread =", Thread.isMainThread)
for i in 0..<data.count {
for j in 0..<data[i].createArray.count {
let dataObject = NSEntityDescription.insertNewObject(forEntityName: entity, into: context)

// Parse the dictionary of keys/values returned from the synced array into an easily readable JSON file.
let parsedData = json(from: data[i].createArray[j])
DispatchQueue.main.async {
label?.text = "Syncing " + String(describing: j + 1) + " " + entity + "s out of " + String(describing: data[i].createArray.count)
print("is main thread =", Thread.isMainThread)

print(label?.text)
}
}
}
}
}

但是,main.async 调用中的 block 仅在函数的其余部分运行完毕后才执行。我如何更改它以在循环的每次迭代中更新?

最佳答案

代替

DispatchQueue.main.async {}

使用

DispatchQueue.main.sync {}

关于ios - main.async 中的 block 仅在 global.async block 完成后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53006817/

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