Я вызываю функцию из моей библиотеки, которая должна обновить некоторый пользовательский интерфейс в приложении:
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 выполняется только после прохождения остальной части функции. Как я могу изменить это, чтобы обновлять каждую итерацию цикла?