Приложение для iPhone MVC: куда мне поставить модель? - PullRequest
1 голос
/ 28 июля 2010

Я довольно новичок в разработке для iPhone.

Я создаю приложение, которое имеет несколько представлений и контроллеров. Есть только одна модель.

Мне нужно поделиться моделью среди всех контроллеров; поэтому я создал модель в заголовочном файле Делегата приложения:

@interface MyAppDelegate
(...snip...)
@property (nonatomic, retain) CalcModel *model;

и затем синтезировал его соответственно.

Внутри контроллера я пытался ссылаться на модель следующим образом:

CalcModel* model = [[[UIApplication sharedApplication] delegate] model];

Проблема в том, что компилятор говорит, что '-model' не найден в протоколе

Вероятно, это связано с тем, что поле делегата возвращает тип протокола, а не конкретный тип MyAppDelegate ... поэтому я должен привести [[UIApplication sharedApplication] делегат] к MyAppDelegate, чтобы я мог получить доступ к свойству модели? Если да, то как?

Или это все неправильно? В более широком смысле, как бы вы поделились моделью между контроллерами представления?

большое спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 28 июля 2010

Вы можете настроить его так же, как вы вводите любой другой объект

CalcModel* model = (MyAppDelegate *)[[[UIApplication sharedApplication] delegate] model];

вам придется создать экземпляр модели в вашем приложении .m

0 голосов
/ 28 июля 2010

Да, просто брось.Я # определяю макрос, который превращает это в простой вызов, чтобы упростить его.

Что касается одного способа реализации структуры модели, в этой статье есть несколько полезных указателей:

http://www.bit -101.com / blog /? P = 1969

(Мы просто реализуем модели как отдельные элементы и используем KVO из представлений для прослушивания изменений свойств.)

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