Используя шаблоны разработки
Шаблон разработки решает проблему разработки стандартного программного обеспечения. Образцы являются абстрактными проектами, не кодируют. Вы используете их, чтобы помочь Вам определить структуру своей модели данных и ее взаимодействия с остальной частью Вашего приложения. При принятии проекта Вы адаптируете его общий образец к своим определенным потребностям. Независимо от того, какой приложение Вы создаете, хорошо знать фундаментальные шаблоны разработки, используемые в платформах. Понимание шаблонов разработки помогает Вам использовать платформы эффективнее и позволяет Вам писать приложения, которые являются более допускающими повторное использование, более расширяемыми, и проще измениться.
MVC
Model-View-Controller (MVC) является центральным к хорошему проекту для любого приложения для iOS. MVC присваивает объекты в приложении к одной из трех ролей: модель, представление или контроллер. В этом образце модели отслеживают данные Вашего приложения, представления выводят на экран Ваш пользовательский интерфейс и составляют содержание приложения, и контроллеры управляют Вашими представлениями. Путем ответа на пользовательские действия и заполнения представлений с содержанием от модели данных, контроллеры служат шлюзом для коммуникации между моделью и представлениями.
Поскольку Вы создали свое приложение ToDoList, Вы следовали MVC-центральному проекту. Интерфейс, который Вы создали в раскадровках, составляет уровень представления. AddToDoItemViewController
и ToDoListTableViewController
контроллеры, управляющие Вашими представлениями. В Учебном руководстве: Добавьте Данные, Вы будете включать модель данных для работы с представлениями и контроллерами в приложении. Когда Вы начинаете разрабатывать свое собственное приложение, важно сохранить MVC в центре Вашего проекта.
Действие Target
Действие Target является концептуально простым проектом, в котором объект отправляет сообщение в другой объект, когда определенное событие имеет место. Сообщение действия является селектором, определенным в исходном коде, и цель — объект, получающий сообщение — является объектом, способным к выполнению действия, обычно контроллер представления. Объект, отправляющий сообщение действия, обычно является управлением — таким как кнопка, ползунок или переключатель — который может инициировать событие в ответ на взаимодействие с пользователем, такое как касание, перетащить или оценить изменение.
Например, предположите, что Вы хотите восстановить настройки по умолчанию в своем приложении каждый раз, когда пользователь касается кнопки Restore Defaults (который Вы создаете в своем пользовательском интерфейсе). Во-первых, Вы реализуете действие, restoreDefaults:
, выполнять логику для восстановления настроек по умолчанию. Затем, Вы регистрируете событие Touch Up Inside кнопки для отправки restoreDefaults:
сообщение действия к контроллеру представления, реализующему тот метод.
Вы уже использовали целевое действие в своем приложении ToDoList. Когда пользователь касается кнопки Save в AddToDoItemViewController
, это инициировало unwindToList:
действие. В этом случае кнопка Save является объектом, отправляющим сообщение, целевой объект ToDoListTableViewController
, сообщение действия unwindToList:
, и событие, инициировавшее сообщение действия, которое будет отправлено, является пользователем, касающимся кнопки Save. Действие Target является мощным механизмом для определения взаимодействия и отправки информации между различными частями Вашего приложения.
Делегация
Делегация является простым и мощным образцом, в котором возражают в действиях приложения от имени, или при взаимодействии с, другой объект. Объект делегирования сохраняет ссылку на другой объект — делегата — и в подходящее время, объект делегирования отправляет сообщение делегату. Сообщение сообщает делегату события, что объект делегирования собирается обработать или только что обработал. Делегат может реагировать на сообщение путем обновления появления (или состояние) себя или других объектов в приложении, и в некоторых случаях это возвратит значение, влияющее, как обрабатывается нависшее событие.
Образец делегата распространен в существующих классах платформы, но можно также реализовать делегацию между двумя пользовательскими объектами в приложении. Общий проект использует делегацию, чтобы позволить дочернему контроллеру представления передавать значение (обычно вводимое пользователями значение) к его родительскому контроллеру представления.
Вы еще не работали с делегацией, но в Учебном руководстве: Добавьте Данные, Вы будете видеть пример их, когда Вы добавите дополнительное поведение к Вашему ToDoListTableViewController
класс.
Это несколько наиболее распространенных шаблонов разработки, с которыми Вы встретитесь во время разработки iOS, но еще существуют многие. Поскольку Вы узнаете больше о Objective C, Вы определите другие шаблоны разработки, которые можно применить в приложении.