Вы можете рискнуть этим для очень маленькой, простой модели, но вы не должны развивать ее как привычку, потому что этот метод сломается, когда ваши проекты станут больше.
Что происходит, когда у вас в приложении два или более представления, которые принимают и выводят данные из модели? Что происходит, когда у вас есть приложение с несколькими представлениями и данные из URL-адреса? Что произойдет, если вы хотите использовать модель данных в HTML или даже интерфейс командной строки. Что происходит, когда вы хотите использовать модель данных в другом приложении в целом?
Если вы собираетесь писать серьезный код, который будет иметь тысячи пользователей, несколько версий и, возможно, побочные продукты, вам нужно заранее развить хорошие привычки.
Лучший метод для модели данных - создать синглтон для его хранения. Я бы предложил создать общий синглтон-класс, а затем сделать вашу модель для любого конкретного проекта подклассом этого класса. Таким образом, у вас есть аккуратная модель, к которой можно получить доступ из любой точки вашего приложения.
Второй лучший способ - это поместить объект модели данных в делегат приложения. Однако это может стать громоздким по мере масштабирования проекта.
Конечно, это не поможет тому, что каждая часть инструктивной / учебной информации, которую я видел, в значительной степени игнорирует модель данных в пользу того, чтобы научить вас, как сделать конфетку для интерфейса. Модели данных - это просто простые массивы или некоторые такие, прикрепленные к стороне контроллера.
Поверьте мне, вы не хотите, чтобы кошмар роста и роста вашего приложения только обнаружил, что его логика модели данных и данные разбросаны по дюжине контроллеров представления. Сожмите зубы и сделайте это правильно с самого начала, и вам никогда не придется потеть.
Edit01:
Синглтон, мне придется сделать несколько
исследования, можете ли вы объяснить, как немного
вы получите доступ к этому из
[CONTROLLER]? Просто любопытно, если
[МОДЕЛЬ] снова заходит в AppDelegate
как бы вы получили к нему доступ из
[CONTROLLER]
Вы паркуете модель данных в делегате приложения, (1) делая объект модели данных свойством делегата приложения и (2) используя глобальную справочную форму для делегата приложения:
MyDataModelClass *theModel=[[UIApplication sharedApplication] delegate] dataModelProperty];
Создание синглтона - это , немного более сложное . Вы используете его, как вы используете NSFileManger. Вы бы сослались на это так же.
NSFileManger *fm=[NSFileManager sharedInstance];
Это гарантирует, что в приложении активен только один файловый менеджер. Вы бы назвали модель данных таким же образом из контроллера:
MyDataModelClass * theModel = [MyDataModelClass sharedInstance];
Если вы тщательно спроектируете объект модели данных так, чтобы он полностью контролировал, какая информация записывается в него, вы можете безопасно использовать его где угодно, не беспокоясь о том, что ваши данные будут уничтожены одной небрежной строкой кода.