Синхронизация данных в контроллере iOS Airplay - PullRequest
0 голосов
/ 22 февраля 2012

Я создал приложение для iOS 5 для iPad, которое использует второй экран.У нас есть вид администратора (на iPad) и внешний вид через телевизор с поддержкой HDMI, подключенный через адаптер Apple DVI.Как в iPad, так и в телевизоре обновляются данные из сервисного вызова, который выполняется каждые несколько секунд.Затем мы представляем данные, полученные в виде ряда диаграмм;Диаграммы данных представлены для телевизора и iPad совершенно по-разному, но основной словарь данных одинаков.Мне интересно об элегантном способе создания этого решения.На данный момент у меня есть один из контроллеров представления (администратор iPad VC), который выполняет сервисные вызовы с использованием GCD и затем отправляет NSNotifications, которые обновляют свойства данных (диаграмм) на другом (ТВ) контроллере представления.Я рассматриваю перемещение сервисных вызовов от VC и создание синглтона, который инициализируется в контроллере приложения.Затем я (каким-то образом) устанавливаю два VC в качестве делегатов, и они обновляются с использованием простого протокола.Я не совсем уверен, что это хороший подход, или я должен рассмотреть что-то еще?Могу ли я даже установить оба VC в качестве делегатов другого класса или это обычно только один делегат на экземпляр класса?

Спасибо за любой ввод.

Бен

1 Ответ

0 голосов
/ 22 февраля 2012

Почему бы не абстрагировать данные диаграммы в собственный класс модели, который вы можете использовать в обоих контроллерах представления? Класс модели может быть ответственным за выборку новых данных. Чтобы контроллеры знали об обновлениях, они могут либо использовать KVO для объекта модели, либо они могут наблюдать уведомления, отправленные из объекта модели при обновлении, либо вы можете иметь массив делегатов для объекта модели, и каждый контроллер представления может быть делегатом.

Кажется, нет никаких веских причин сделать его синглтоном, хотя вы можете, если хотите.

...