NSOperationQueue
управляет своей внутренней очереди NSOperation
с. NSOperation будет удален только из очереди после ее отмены или завершения.
Обратите внимание, что если NSOperation
отменяется, он просто устанавливает соответствующие флаги в пределах NSOperation
объекта, чтобы пометить его как таковое - Реализация NSOperation
несет ответственность за проверку, если она будет отменена и маркировка сама закончила соответственно. Операция, которая не началась , должна проверить, отменяется ли она при ее запуске и сразу же после завершения маркировки. Длительная операция, которая выполняется, должна периодически проверять, отменена ли она и обрабатывать это состояние аналогичным образом.
Также имеет смысл выполнить эту проверку перед выполнением деструктивного кода или кода, которые будут мутировать данные, такие как удаление объекта из основных данных.
См https://developer.apple.com/reference/foundation/nsoperation/1411672-cancel?language=objc
после финиша или отменить –
В операции полного блока или не проверки счетчика работы в очереди операций (отправить уведомление или использовать делегат) –