iOS. Приемы программирования
Шрифт:
Очевидно,
Если бы вы создавали подклассы от NSOperation и добавляли в операционную очередь экземпляры нового класса, то ситуация складывалась бы несколько иначе. Не забывайте о некоторых моментах.
Если обычные операции, являющиеся подклассами от NSOperation, добавлять в операционную очередь, то они будут работать асинхронно. Поэтому необходимо переопределить метод экземпляра isConcurrent, относящийся к классу NSOperation, и возвратить значение YES.
Необходимо подготовить операцию к отмене, периодически проверяя значение метода isCancelled при осуществлении основной задачи операции, а также в методе start еще до запуска самой операции. В таком случае метод start вызывается операционной очередью после того, как операция будет добавлена в очередь. В этом методе проверяется, не отменена ли операция. Это делается с помощью метода isCancelled. Если операция отменена, просто верните такое значение от метода start. В противном случае вызовите метод main из метода start.
Переопределите метод main собственной реализацией основной задачи, которую должна выполнять операция. Обязательно выделите и инициализируйте в этом методе ваш собственный автоматически высвобождаемый пул и высвободите его непосредственно перед актом возврата.
Переопределите методы isFinished и isExecuting операции и верните соответствующие логические (BOOL) значения, показывающие, завершена операция или продолжается в настоящий момент.
Вот объявление операции (.h-файл):
Теперь этот операционный класс можно использовать в любом другом классе, например в делегате вашего приложения. Вот объявление делегата приложения, в котором задействуется этот новый класс операции, добавляемый в операционную очередь:
Застекленная деревня
Детективы:
классические детективы
рейтинг книги
Сын рыбака
Проза:
советская классическая проза
рейтинг книги
Кубинский зал
Детективы:
прочие детективы
рейтинг книги
Книга забвения. Том 1.
Фантастика:
фэнтези
рейтинг книги
Долг
7. Другая сторона
Фантастика:
боевая фантастика
рейтинг книги
Клинок Тишалла
2. Герои умирают
Фантастика:
героическая фантастика
рейтинг книги
Ловите конский топот. Том 1. Исхода нет, есть только выходы...
15. Одиссей покидает Итаку
Фантастика:
альтернативная история
рейтинг книги
Итальянский фашизм
Научно-образовательная:
история
политика
рейтинг книги
Бумажный грааль
Проза:
современная проза
рейтинг книги
Ловчий смерти
Фантастика:
фэнтези
рейтинг книги
Цикл "Отмороженный". Компиляция. Книги 1-14
Отмороженный
Фантастика:
боевая фантастика
рпг
постапокалипсис
рейтинг книги
Дом в овраге
MYST. Черная книга 18+
Детективы:
триллеры
рейтинг книги
Дважды одаренный. Том II
2. Дважды одаренный
Фантастика:
городское фэнтези
альтернативная история
аниме
рейтинг книги
Библия Раджниша. Том 2. Книга 2
Религия и эзотерика:
самосовершенствование
эзотерика
рейтинг книги