Связь между моделью и контроллером — iOS

Я новичок в разработке iOS, поэтому был бы признателен за отзыв.

Я пытаюсь создать клиент iOS для моего веб-сервиса. На данный момент я сделал следующее:

Я реализую два представления (приложение на основе утилиты с использованием раскадровки). В основном представлении я использую текстовое поле и кнопку поиска, где пользователь может ввести запрос, а затем нажмите кнопку поиска. После нажатия кнопки поиска мое намерение состоит в том, чтобы прочитать значение текстового поля и использовать его в моем спокойном вызове моей веб-службы. Моя веб-служба отвечает файлом JSON с результаты запроса, которые я разбираю и показываю в текстовую область вторичного представления.

Я знаю, как сделать вызов в iOS и как выполнить анализ JSON, а также отобразить результаты на экране (по крайней мере, текст (но это уже другой вопрос). Но я намерен изучить и внедрить основы MVC в свое приложение.

Согласно MVC, контроллер обновляет представление, и модель отправляет широковещательное уведомление, которое контроллер может прослушать и узнать, есть ли какие-либо изменения в объекте. Вот что я в идеале хотел бы сделать:

Моя модель. Моя модель будет обрабатывать основной вызов RESTful, получать ответ JSON, анализировать его и получать результирующие значения, которые я хочу отобразить в представлении.

Мой контроллер. Я хочу, чтобы мой контроллер прослушивал мою модель, получал результирующие значения из модели и отображал их в представлении.

Используя быстрый и грязный способ, я могу реализовать вызов RESTful, синтаксический анализ JSON и отображение результирующих значений — все это внутри контроллера, но с этой техникой, если мое представление изменится завтра, мне придется переписать свой код. Или, если я хочу добавить новые функции, мне нужно сменить контроллер. Поэтому в идеале я хотел бы иметь базовую модель, которая не знает, как выглядит представление, и просто позвольте контроллеру получать результаты из модели и отображать их в представлении.

Из того, что я прочитал в результатах поиска Google, есть два способа сделать это: а) наблюдение за ключом и значением и б) центр уведомлений.

В течение последних 2 дней я пытаюсь найти хороший и достойный способ реализовать Центр уведомлений или узнать больше о нем, но я не получаю хороших результатов. Некоторые из вопросов, которые у меня есть, заключаются в том, могу ли я отправить значение результатов String с помощью Центра уведомлений, который принимает мой контроллер? Как на самом деле Центр уведомлений работает со строковыми значениями? Где найти хорошие примеры?

Мы будем очень признательны за любую помощь в этом вопросе.

6
задан BlueChips23 15 April 2012 в 23:09
поделиться