Протоколы NSNotification и делегировать?
У меня есть приложение для iPhone, которое в основном получает информацию из API (в XML, но, возможно, в конечном итоге JSON). Результирующие объекты обычно отображаются в контроллерах вида (в основном в таблицах).
Вот архитектура прямо сейчас.
У меня есть классы NSOperation, которые извлекают различные объекты с удаленного сервера. Каждый из этих классов NSOperation, будет принимать пользовательский метод делегата, который будет отстреливать результирующие объекты по мере их анализа, а затем, наконец, метод, когда больше нет доступных результатов. Итак, протокол для делегатов будет примерно таким:
(void) ObjectTypeResult:(ObjectType *)result;
(void) ObjectTypeNoMoreResults;
Я думаю, что решение работает хорошо, но в конечном итоге я получаю кучу протоколов делегирования, а затем мои контроллеры представления должны реализовать все эти методы делегирования. Я не думаю, что это так уж плохо, но я всегда в поисках лучшего дизайна.
Итак, я думаю об использовании NSNotifications, чтобы удалить использование делегатов. Я мог бы включить объект в список userInfo часть уведомления и просто разнести объекты как полученные, а затем окончательное событие, когда больше не доступны. Тогда я мог бы просто иметь один метод в каждом контроллере представления для получения всех данных, даже при использовании нескольких объектов в одном контроллере.†
Итак, может кто-нибудь поделиться со мной некоторыми плюсами/минусами каждого подхода. Следует ли мне рассмотреть возможность рефакторинга кода для использования событий, а не делегатов? Разве одно лучше другого в определенных ситуациях? В моем сценарии я действительно не смотрю получать уведомления в нескольких местах, так что, возможно, делегаты на основе протокола-это путь.
Спасибо!