MVC: Контроллер хранит массив объектов модели или объектов просмотра?

У меня есть контроллер вида placeViewController который тянет в кучу Place объекты, и от этих нагрузок и заполняет соответствующую группу PlaceView объекты, которые затем отображаются в качестве подпредставлений для основного вида.

Мне нужно периодически обновлять эти представления, что требует, чтобы информация из модели и других мест была вставлена ​​в представления.

Как я должен правильно структурировать это?

  • Держите массив Place объекты и дать модели PlaceView свойство хранить указатели на представления

  • Держите массив PlaceView объекты и дать представление Place свойство хранить указатели на места

  • Держите оба массива и используйте много indexOfObjectobjectAtIndex прыгать между ними

  • Каким-то другим способом??

2 ответа

Решение

Хорошо, Basvk получил ответ в своем комментарии, но не опубликовал фактический ответ для меня, чтобы пометить правильно.

Итак, вот оно: "Я бы создал NSMutableArray с PlaceView объекты. И PlaceView класс содержит @property Place *place"

Мне нужно периодически обновлять эти представления, что требует, чтобы информация из модели и других мест была вставлена ​​в представления.

Вы должны действительно сосредоточиться на ObserverPattern. Ваши просмотры регистрируются в "уведомлениях", и когда изменения сделаны, ваши зарегистрированные просмотры уведомляются.

http://en.wikipedia.org/wiki/Observer_pattern

Вы по-прежнему можете использовать NSNotificationCenter, но он не удовлетворит ваши потребности, поскольку вам нужно, чтобы ваши представления обновлялись для каждого объекта Place (в паре, как словарь). Поэтому я рекомендую вам реализовать свой собственный. Он потеряет связь, потому что ваш контроллер просто сделает клей между наблюдателем и вашими взглядами, и вся "логика" будет обрабатываться наблюдателем.

Другие вопросы по тегам