Почти во всех случаях достаточно будет набрать cancelAllOperations
.Единственный раз, когда вам нужно позвонить waitUntilAllOperationsAreFinished
, это если вам действительно нужно убедиться, что эти операции выполнены, прежде чем вы продолжите.
Например, вы можете сделать это, если операции обращаются к некоторой общей памяти, и если вы не ждете, то в итоге вы получите два потока, записывающих в эту общую память одновременно.Однако я не могу придумать разумного дизайна, который бы защищал разделяемую память, вызывая задержку блокировки в методе dealloc
.Доступны гораздо лучшие механизмы синхронизации.
Итак, краткий ответ таков: вам не нужно ждать завершения всех операций, если только по какой-то причине вашему приложению это не нужно.