Я работаю над приложением для iPhone, основанным на навигации, которое взаимодействует с REST API, используя OAuth, и я хотел бы знать, как мои классы должны лучше всего общаться друг с другом.У меня есть несколько UITableViews, несколько UITableViewDataSources, класс API и контроллер представления, который обрабатывает аутентификацию в веб-представлении.
Вот как у меня сейчас структурированы вещи:
- MyUIApplicationDelegate владеет экземпляром класса, который знает, как взаимодействовать с REST API
- . Я могу попросить класс API вызвать метод REST, и он возвращается с данными (он переносит ASIHTTPRequest s для прозрачной обработки OAuth, поэтому в настоящее время он не знает, какой объект запрашивает данные)
- Если пользователь не аутентифицирован, я могу попросить класс API инициировать процесс OAuth
- Можно открыть диалоговое окно OAuth, и приложение предоставило доступ к API от имени пользователя.
Проблема, с которой я сталкиваюсь, заключается в том, что моим UITableViewDataSources необходимо связаться с классом API, чтобы получить ихданные, но аутентификация может потребоваться в первую очередь, что включает модальное представление аутентификации, представленноеКонтроллер ew.
Было бы лучше, чтобы каждая модель UITableViewDataSource имела собственный экземпляр класса API, или класс API должен быть одноэлементным?
Если каждой модели принадлежит экземпляр класса API, как он должен сообщать контроллеру представления о необходимости аутентификации?
Если класс API является одноэлементным, какДолжен ли он взаимодействовать с несколькими моделями и контроллерами представления для представления диалога аутентификации?Делегаты для каждого?Опубликовать NSNotifications?
Какой-то другой способ, о котором я не задумывался?
Действительно, я думаю, что суть проблемы заключается в том, что у меня естьодин класс, который в основном используется для извлечения данных, но для этого может потребоваться взаимодействие с пользователем.