Какой лучший способ для ViewController общаться с его моделью? - PullRequest
0 голосов
/ 06 сентября 2010

В настоящее время я полагаюсь на тот факт, что UIApplication является одноэлементным, и я получаю доступ к моделям в качестве свойств делегата, но мне кажется, что это длинная цепочка.

Controller-> UIApplication-> Delegate-> Model(-> конкретное свойство, которое будет установлено)

Ответы [ 2 ]

2 голосов
/ 06 сентября 2010

Вообще говоря, лучший способ взаимодействия контроллера представления с его классом модели - это инициализация контроллера представления с классом модели.Например:

- (id)initWithModel:(MYModel *)aModel {
    self = [super initWithNibName:@"ModelViewController" bundle:nil];
    if (self != nil) {
        self.model = aModel;
    }
    return self;
}

Существуют и другие подходы для особых случаев, но это лучший подход по умолчанию.

0 голосов
/ 06 сентября 2010

Все, что создало объект (ы) контроллера представления и необходимый объект модели, может связать их. Например, корневой контроллер может инициировать модель, затем контроллеры представления, которые нуждаются в модели, затем использовать свойство контроллеров представления для обеспечения доступа к модели.

Часто этот корневой контроллер является делегатом приложения или самим контроллером представления. Если вы просто хотите сократить цепочку доступа от делегата приложения в качестве оптимизации времени / пространства, вы можете сохранить / кэшировать одноэлементную модель после первого следования обычной цепочке для доступа к ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...