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