Ссылаясь https://developer.apple.com/reference/foundation/operation, я имею установку Playground, как -Понимание последовательности операций с зависимостью в Swift
class myOperation1 : Operation {
override func main() {
print("op1 working....")
}
}
class myOperation2 : Operation {
override func main() {
print("op2 working....")
}
}
let op1 = myOperation1()
let op2 = myOperation2()
op1.completionBlock = {
print("op1 finished")
}
op2.completionBlock = {
print("op2 finished")
}
op2.addDependency(op1)
let opsQue = OperationQueue()
opsQue.addOperation(op1)
opsQue.addOperation(op2)
И лог консоли -
op1 working....
op2 working....
op1 finished
op2 finished
Не следует ли нам ожидать выхода в результате зависимости ? -
op1 working....
op1 finished
op2 working....
op2 finished
Тот же результат с помощью - opsQue.addOperations([op1, op2], waitUntilFinished: true)
op1 working....
op2 working....
op1 finished
op2 finished
Чтобы избежать кодового заказа, вы можете использовать 'opsQue.addOperations ([op1, op2], waitUntilFinished: true) ' – WeiJay
и попробуйте с зависимостью и без зависимости – WeiJay
@WeiJay: Возможно, я не должен наблюдать за этим поведением на Playground, в фактическом проекте он должен работать как ожидалось – BaSha