Обзор подписки публикации
Когда используется должным образом, Подписка Публикации позволяет Вашему приложению подписываться на подачу и обновлять подачу прозрачно. Однако технология требует сотрудничества многократных компонентов. В этой главе описываются главные компоненты Подписки Публикации, вместе с архитектурой платформы.
Компоненты подписки публикации
Технология Подписки Публикации обеспечивает архитектуру для Вашего приложения для подписки подачи. Существует три главных компонента к технологии: платформа Подписки Публикации (PubSub.framework), агент PubSub и база данных PubSub.
Платформа является набором классов Objective C, обеспечивающих абстракцию для каждой части канала. Платформа использует фоновое приложение для выполнения таких задач как загрузка подачи из Интернета и обновления подачи. Это фоновое приложение, названное Агентом PubSub, также ответственно за отправку уведомлений клиентам платформы Подписки Публикации и получения межпроцессных взаимодействий (IPCs) от клиентов при необходимости.
Когда подача загружается, Агент PubSub хранит новую информацию в базу данных, известную как База данных PubSub. Для каждой учетной записи пользователя существует единственная База данных PubSub, таким образом, канал только сохранен один раз на учетную запись пользователя. Если два отдельных приложения подписываются на тот же канал, только одна копия сохранена в базе данных.
Компоненты Publication Subscription могут быть замечены на рисунке 2-1.

Платформа подписки публикации
Платформа Подписки Публикации разработана для имения подобной структуры к тому из ряда подачи. Каждый компонент канала (включая сам канал) сохранен как объект и имитаторы иерархии объекта тот из канала (см. рисунок 2-2). Одновременно, платформа Подписки Публикации следует шаблону разработки наблюдателя. Когда подчиненное объектное состояние изменений, все его зависимые уведомляются и обновляются автоматически, шаблон разработки наблюдателя определяет one-many зависимость между объектами так, чтобы. (Для получения дополнительной информации о шаблоне разработки наблюдателя, считайте Шаблоны разработки Какао.)

Для Вашего приложения для передачи с Агентом PubSub это должно зарегистрировать себя в Подписке Публикации путем генерации объекта клиента (PSClient). Для каждого приложения, использующего Подписку Публикации, нужен ее собственный объект клиента. Если Вы хотите подписаться на канал, необходимо сказать объект клиента. Точно так же, если существует изменение в канале, Ваше приложение подписывается на, клиент уведомляет Ваше приложение. С точки зрения модели наблюдателя подчиненный объект платформы Подписки Публикации является объектом клиента.
Объект клиента поддерживает ряд объектов канала, один для каждого канала, на который это подписано. Объект канала (PSFeed) хранит информацию о канале, таком как его заголовок, его URL, время, когда это обновилось, и записи, связанные с ним. Так же, как канал содержит много записей, объекты канала содержат много объектов записи (PSEntry). Объект записи содержит содержание (PSContent), автор (PSAuthor), и (если необходимый) корпус (PSEnclosure) из записи. Рисунок 2-3 показывает запись и каждый из ее компонентов, просматриваемого Safari использования.

Можно привести настройки в соответствие с каждым клиентом и подать объект. Например, можно указать, как часто проверить на обновления канала или сколько времени записи должны быть сохранены в Базе данных PubSub. Вы указываете настройки с объектом настроек (PSFeedSettings). Объект настроек может быть связан или с клиентом или с каналом.
Структура объектов подписки может быть замечена на рисунке 2-4.

Понимание компонентов Подписки Публикации и платформы Подписки Публикации необходимо для подписки на подачу в Вашем приложении. Следующие две главы объясняют, как использовать платформу Подписки Публикации в приложении.