Справочник по классу TAGContainerOpener

Справочник по классу TAGContainerOpener

Обзор

Вспомогательный класс для открытия контейнеров.

Это оболочка метода openContainerById:callback: (TAGManager) для вызывающих объектов, обеспечивающая поддержку таймаутов.

Ниже приведен пример, показывающий ожидание загрузки контейнера до 0,1 секунды перед возвратом к контейнеру по умолчанию:

     NSTimeInterval timeout = 0.1;
     TagManager *tagManager = [TagManager instance];
     TAGContainerFuture *future =
         [TAGContainerOpener openContainerWithId:@"GTM-XXXX"
                                      tagManager:tagManager
                                        openType:kTAGOpenTypePreferNonDefault
                                         timeout:&timeout];
     TAGContainer *container = [future get];
 

Если вызывающая сторона хочет получать асинхронное уведомление, когда контейнер доступен, но хочет вручную указать тайм-аут равным 0,5 секунды, тогда вызывающая сторона должна создать подкласс TAGContainerOpenerNotifier , выполнить вызов openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) с таймаутом. установите значение 0,5 и добавьте реализацию вContainerAvailable: (TAGContainerOpenerNotifier-p) для обработки уведомления о доступности контейнера.

Статические открытые функции-члены

(id <TAGContainerFuture> ) + openContainerWithId:tagManager:openType:тайм-аут:
Ожидает загрузки контейнера в timeout (не по умолчанию или свежего, в зависимости от указанного openType ) и возвращает TAGContainerFuture .
(пустота) + openContainerWithId:tagManager:openType:тайм-аут:уведомитель:
Ожидает загрузки контейнера в timeout (не по умолчанию или свежего, в зависимости от указанного openType ) и вызывает уведомитель, когда контейнер доступен.
(НСтимеинтервал) + таймаут по умолчанию
Возвращает тайм-аут по умолчанию для запроса контейнера.

Документация по функциям-членам

+ (id< TAGContainerFuture >) openContainerWithId: (НСтрока *) идентификатор контейнера
менеджер тегов: ( Менеджер тегов *) Менеджер тегов
открытыйТип: ( ТАГОпенТип ) openType
тайм-аут: (НСтимеинтервал *) тайм-аут

Ожидает загрузки контейнера в timeout (не по умолчанию или свежего, в зависимости от указанного openType ) и возвращает TAGContainerFuture .

Если открытый тип — kTAGOpenTypePreferNonDefault , загружается контейнер, отличный от стандартного (сохраненный или полученный из сети), и TAGContainerFuture разблокируется, как только происходит одно из следующих событий:

  • сохраненный контейнер загружается.
  • если сохраненного контейнера нет, значит загружается сетевой контейнер или возникает сетевая ошибка.
  • таймер истекает.

Если происходит сетевая ошибка или истекает время таймера, get (TAGContainerFuture-p) может вернуть контейнер по умолчанию.

Если открытый тип — kTAGOpenTypePreferFresh , загружается новый (сохраненный или полученный из сети) контейнер, и TAGContainerFuture разблокируется, как только происходит одно из следующих событий:

  • загружается сохраненный свежий контейнер.
  • если сохраненного контейнера нет или сохраненный контейнер устарел, загружается сетевой контейнер или возникает сетевая ошибка.
  • таймер истекает.

Если происходит сетевая ошибка или истекает время таймера, get (TAGContainerFuture-p) может содержать значения по умолчанию или устаревший сохраненный контейнер.

Если вы вызовете один из методов openContainer во второй раз с заданным containerId , будет возвращен TAGContainerFuture , метод get (TAGContainerFuture-p) которого вернет тот же контейнер, что и при первом вызове.

Параметры:
идентификатор контейнера Идентификатор контейнера для загрузки.
Менеджер тегов TAGManager для получения контейнера.
тайм-аут Максимальное количество секунд ожидания загрузки контейнера из сохраненного хранилища. Если ноль, будет использоваться defaultTimeout .
openType Выбор способа открытия контейнера.
Возврат:
TAGContainerFuture , который будет ждать истечения timeout ожидания и возвращать контейнер, когда он станет доступен.
+ (недействительный) openContainerWithId: (НСтрока *) идентификатор контейнера
менеджер тегов: ( Менеджер тегов *) Менеджер тегов
открытыйТип: ( ТАГОпенТип ) openType
тайм-аут: (НСтимеинтервал *) тайм-аут
уведомитель: (id< TAGContainerOpenerNotifier >) уведомитель

Ожидает загрузки контейнера в timeout (не по умолчанию или свежего, в зависимости от указанного openType ) и вызывает уведомитель, когда контейнер доступен.

Если открытый тип — kTAGOpenTypePreferNonDefault , контейнер не по умолчанию (сохраненный или полученный из сети) загружается и передается в уведомитель. Уведомитель вызывается, как только происходит одно из следующих событий:

  • сохраненный контейнер загружается.
  • если сохраненного контейнера нет, значит загружается сетевой контейнер или возникает сетевая ошибка.
  • таймер истекает.

Если происходит сетевая ошибка или истекает время таймера, контейнер, передаваемый в уведомитель, становится контейнером по умолчанию.

Если открытый тип — kTAGOpenTypePreferFresh , новый контейнер (сохраненный или полученный из сети) загружается и передается в уведомитель. Уведомитель вызывается, как только происходит одно из следующих событий:

  • загружается сохраненный свежий контейнер.
  • если сохраненного контейнера нет или сохраненный контейнер устарел, загружается сетевой контейнер или возникает сетевая ошибка.
  • таймер истекает.

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

Если вы вызываете один из методов openContainer второй раз с заданным containerId , тот же контейнер, возвращенный из предыдущего вызова, будет передан в уведомитель, как только он станет доступен.

Параметры:
идентификатор контейнера Идентификатор контейнера для загрузки.
Менеджер тегов TAGManager , используемый для получения контейнера.
openType Выбор способа открытия контейнера.
тайм-аут Максимальное количество секунд ожидания загрузки контейнера из сохраненного хранилища. Если ноль, будет использоваться defaultTimeout .
уведомитель Необязательный уведомитель, который будет вызван, когда контейнер станет доступен. Он будет вызван с новым контейнером, если он доступен и загружен до истечения времени ожидания; в противном случае он будет вызван с несвежим контейнером. Обратите внимание, что уведомитель может быть вызван из другого потока.
+ (NSTimeInterval) defaultTimeout

Возвращает тайм-аут по умолчанию для запроса контейнера.

Возврат:
Тайм-аут по умолчанию в секундах.