Контроллеры какао - лучшая практика уведомления о завершении для утилизации?

У меня есть объект контроллера ObjC.

После выделения/инициализации объекта я заставляю его выполнять работу асинхронно:

[мойОбъект doSomeThingsOverTime];

Метод приводит вещи в движение, а затем немедленно возвращается.

Вопрос: как лучше всего получить уведомление о результате в будущем, чтобы я мог освободить свой объект и отреагировать на завершение работы? Должен ли я наблюдать/размещать уведомления? Или предоставить объекту метод обратного вызова? Или другой?


person SirRatty    schedule 12.06.2009    source источник


Ответы (2)


Я лично поклонник маршрута центра уведомлений. Это позволяет иметь более одного наблюдателя (может иметь или не иметь отношение к вам).

Маршрут делегата также допустим и довольно часто используется во фреймворках.

Я думаю, что это сводится к личным предпочтениям. Если это ваш собственный код, вы должны выбрать наиболее читаемый и простой для вашей конкретной ситуации. Я не думаю, что один более или менее действителен, чем другой.

person NilObject    schedule 12.06.2009
comment
Спасибо! Я буду придерживаться уведомлений тогда. Ваше здоровье. - person SirRatty; 12.06.2009

Вы смотрели на классы NSOperation и NSOperationQueue? Вы можете наблюдать isFinished объекта NSOperation, чтобы получить уведомление, когда он будет завершен.

person diederikh    schedule 12.06.2009