В Swift , вы можете достичь этого, используя closures
.
Создать 3 variables
типа (()->())
, а именно - block1, block2, block3
- Звоните
block2
внутри block1
- Звоните
block3
внутри block2
Пример:
let dispatchGroup = DispatchGroup()
dispatchGroup.notify(queue: .main) {
print("All blocks executed")
}
dispatchGroup.enter()
let block3 = {
print("block3 called")
dispatchGroup.leave()
}
dispatchGroup.enter()
let block2 = {
print("block2 called")
block3()
dispatchGroup.leave()
}
dispatchGroup.enter()
let block1 = {
print("block1 called")
block2()
dispatchGroup.leave()
}
block1()
В приведенном выше коде я использовал DispatchGroup
для synchronous
выполнения всех blocks
.