Odniesienie do klasy TAGContainerOpener

Odniesienie do klasy TAGContainerOpener

Opis

Klasa pomocnicza do otwierania kontenerów.

Jest to kod obejmujący metodę openContainerById:callback: (TAGManager) w przypadku elementów wywołujących, która zapewnia obsługę limitów czasu.

Oto przykład pokazujący po 0,1 sekundy, że kontener zostanie wczytany, zanim przywrócisz domyślny kontener:

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

Jeśli element wywołujący chce otrzymywać asynchroniczne powiadomienia o dostępności kontenera, ale chce ręcznie ustawić czas oczekiwania na 0,5 sekundy, powinien utworzyć podklasę TAGContainerOpenerNotifier, wywołać metodę openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) z czasem oczekiwania ustawionym na 0.5 oraz dodaj implementację TAG do interfejsu containerOpenerAvailable na potrzeby powiadomienia containerOpenerAvailable (w języku angielskim):

Statyczne publiczne funkcje członkowskie

(id< TAGContainerFuture >)+ openContainerWithId:tagManager:openType:timeout:
 Czeka do timeout s na wczytanie kontenera (niedomyślny lub aktualny w zależności od określonego elementu openType) i zwraca TAGContainerFuture.
(void) + openContainerWithId:tagManager:openType:timeout:notifier:
 Czeka do timeout sekund na wczytanie kontenera (niedomyślny lub aktualny w zależności od określonego elementu openType) i wywołuje powiadomienie, gdy kontener jest dostępny.
(NSTimeInterval)+ defaultTimeout
 Zwraca domyślny czas oczekiwania przy żądaniu kontenera.

Dokumentacja funkcji członka grupy

+ (id<TAGContainerFuture>) openContainerWithId: (NSString *) containerId
Menedżer tagów: (TAGManager *) tagManager
openType: (TAGOpenType) openType
wygaszanie: (NSTimeInterval *) timeout (Limit czasu)

Czeka do timeout s na wczytanie kontenera (niedomyślny lub aktualny w zależności od określonego elementu openType) i zwraca TAGContainerFuture.

Jeśli typ otwarcia to kTAGOpenTypePreferNonDefault, zostanie wczytany kontener inny niż domyślny (zapisany lub pobrany z sieci), a TAGContainerFuture zostanie odblokowany w jednej z tych sytuacji:

  • wczytany kontener.
  • Jeśli nie ma zapisanego kontenera, kontener sieci jest załadowany lub występuje błąd sieci.
  • minie czas.

Jeśli wystąpi błąd sieci lub upłynie czas, funkcja get (TAGContainerFuture-p) może zwrócić kontener domyślny.

Jeśli typ otwarty to kTAGOpenTypePreferFresh, zostanie wczytany nowy kontener (zapisany lub pobrany z sieci), a obiekt TAGContainerFuture zostanie odblokowany w następujących sytuacjach:

  • wczytany nowy kontener.
  • Jeśli nie ma zapisanego kontenera lub takiego kontenera jest nieaktualny, kontener sieci jest wczytywany lub występuje błąd sieci.
  • minie czas.

Jeśli wystąpi błąd sieci lub upłynie czas, funkcja get (TAGContainerFuture-p) może zawierać wartości domyślne lub nieaktualny zapisany kontener.

Jeśli ponownie wywołasz jedną z metod openContainer z określoną wartością containerId, zwrócony zostanie parametr TAGContainerFuture, którego element get (TAGContainerFuture-p) zwróci ten sam kontener, co pierwsze wywołanie.

Parametry:
containerIdIdentyfikator kontenera do wczytania.
tagManagerTAGManager służący do pobierania kontenera.
przerwa w grzeMaksymalny czas oczekiwania na wczytanie kontenera z zapisanego sklepu. W przypadku wartości nil używana jest wartość defaultTimeout.
openTypeWybór sposobu otwierania kontenera.
Zwraca:
TAGContainerFuture, która poczeka do timeout i zwróci kontener, gdy będzie dostępny.
+ (void) – openContainerWithId: (NSString *) containerId
Menedżer tagów: (TAGManager *) tagManager
openType: (TAGOpenType) openType
wygaszanie: (NSTimeInterval *) limit czasu
powiadomienie: (id< TAGContainerOpenerNotifier >) notifier

Czeka do timeout sekund na wczytanie kontenera (niedomyślny lub aktualny w zależności od określonego elementu openType) i wywołuje powiadomienie, gdy kontener jest dostępny.

Jeśli typem otwarcia jest kTAGOpenTypePreferNonDefault, kontener inny niż domyślny (zapisany lub pobrany z sieci) zostanie wczytany i przekazany do powiadomienia. Powiadomienia są wywoływane natychmiast po wystąpieniu jednej z następujących sytuacji:

  • wczytany kontener.
  • Jeśli nie ma zapisanego kontenera, kontener sieci jest załadowany lub występuje błąd sieci.
  • minie czas.

Jeśli wystąpi błąd sieci lub upłynie czas, kontener przekazany do powiadomienia jest kontenerem domyślnym.

Jeśli typem otwarcia jest kTAGOpenTypePreferFresh, nowy kontener (zapisany lub pobrany z sieci) zostanie wczytany i przekazany do powiadomienia. Powiadomienia są wywoływane natychmiast po wystąpieniu jednej z następujących sytuacji:

  • wczytany nowy kontener.
  • Jeśli nie ma zapisanego kontenera lub takiego kontenera jest nieaktualny, kontener sieci jest wczytywany lub występuje błąd sieci.
  • minie czas.

Jeśli wystąpi błąd sieci lub upłynie czas, kontener przekazany do powiadomienia może zawierać wartości domyślne lub nieaktualny zapisany kontener.

Jeśli ponownie wywołasz jedną z metod openContainer z użyciem podanej wartości containerId, ten sam kontener zwrócony z poprzedniego wywołania zostanie przekazany do powiadomienia, gdy tylko będzie dostępny.

Parametry:
containerIdIdentyfikator kontenera do wczytania.
tagManagerParametr TAGManager używany do pobrania kontenera.
openTypeWybór sposobu otwierania kontenera.
przerwa w grzeMaksymalny czas oczekiwania na wczytanie kontenera z zapisanego sklepu. W przypadku wartości nil używana jest wartość defaultTimeout.
powiadomienieOpcjonalny powiadomienie, które zostanie wywołane, gdy kontener będzie dostępny. Zostanie wywołana ze nowym kontenerem (jeśli jest dostępna) i wczytana przed upływem czasu oczekiwania. W przeciwnym razie zostanie wywołana z nieświeżym kontenerem. Pamiętaj, że powiadamianie może być wywoływane z innego wątku.
+ (NSTimeInterval) defaultTimeout

Zwraca domyślny czas oczekiwania przy żądaniu kontenera.

Zwraca:
Domyślny limit czasu w sekundach.