Давайте рассмотрим пример
let queue = OperationQueue()
let op = BlockOperation {
print("Operation 1 is executing")
}
let op2 = BlockOperation {
print("Operation 2 is executing")
}
queue.addOperation(op)
queue.addOperation(op2)
Если вы запустите этот код, вы получите результат
Operation 1 is executing
Operation 2 is executing
После добавления этих двух BlockOperation
с или Operation
с вы можете отменить их с помощью
queue.cancelAllOperations()
Вы можете получить список операций в очереди
print(queue.operations)
и вы получите
[
<NSBlockOperation 0x600000043e40 isFinished=YES isReady=YES isCancelled=NO isExecuting=NO>,
<NSBlockOperation 0x600000045e50 isFinished=YES isReady=YES isCancelled=NO isExecuting=NO>
]
Таким образом, вы можете видеть, что оба завершены и не были отменены, однако, если бы мы отменили их с помощью queue.cancelAllOperations()
, мы получили бы
[
<NSBlockOperation 0x600000043e40 isFinished=YES isReady=YES isCancelled=YES isExecuting=NO>,
<NSBlockOperation 0x600000045e50 isFinished=YES isReady=YES isCancelled=YES isExecuting=NO>
]