MVC: Контроллер хранит массив объектов модели или объектов просмотра?
У меня есть контроллер вида placeViewController
который тянет в кучу Place
объекты, и от этих нагрузок и заполняет соответствующую группу PlaceView
объекты, которые затем отображаются в качестве подпредставлений для основного вида.
Мне нужно периодически обновлять эти представления, что требует, чтобы информация из модели и других мест была вставлена в представления.
Как я должен правильно структурировать это?
Держите массив
Place
объекты и дать моделиPlaceView
свойство хранить указатели на представленияДержите массив
PlaceView
объекты и дать представлениеPlace
свойство хранить указатели на местаДержите оба массива и используйте много
indexOfObject
objectAtIndex
прыгать между нимиКаким-то другим способом??
2 ответа
Хорошо, Basvk получил ответ в своем комментарии, но не опубликовал фактический ответ для меня, чтобы пометить правильно.
Итак, вот оно: "Я бы создал NSMutableArray
с PlaceView
объекты. И PlaceView
класс содержит @property Place *place
"
Мне нужно периодически обновлять эти представления, что требует, чтобы информация из модели и других мест была вставлена в представления.
Вы должны действительно сосредоточиться на ObserverPattern. Ваши просмотры регистрируются в "уведомлениях", и когда изменения сделаны, ваши зарегистрированные просмотры уведомляются.
http://en.wikipedia.org/wiki/Observer_pattern
Вы по-прежнему можете использовать NSNotificationCenter, но он не удовлетворит ваши потребности, поскольку вам нужно, чтобы ваши представления обновлялись для каждого объекта Place (в паре, как словарь). Поэтому я рекомендую вам реализовать свой собственный. Он потеряет связь, потому что ваш контроллер просто сделает клей между наблюдателем и вашими взглядами, и вся "логика" будет обрабатываться наблюдателем.