Omówienie
Klasa pomocnicza do otwierania kontenerów.
Oto otoczenie metody openContainerById:callback: (TAGManager) dla elementów wywołujących, która zapewnia obsługę przekroczenia limitu czasu.
Poniżej znajduje się przykład oczekiwania na wczytanie kontenera po upływie maksymalnie 0,1 sekundy przed przywróceniem kontenera domyślnego:
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 obiekt wywołujący chce być asynchronicznie powiadamiany o dostępności kontenera, ale chce ręcznie określić czas oczekiwania na 0,5 sekundy, element wywołujący powinien podklasę TAGContainerOpenerNotifier, wywołać funkcję openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) z czasem oczekiwania ustawionym na 0.5, a następnie dodać implementację do elementu Container-Availableer.
Statyczne funkcje publiczne | |
| (id< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
Czeka maksymalnie timeout sekundy na wczytanie kontenera (inny niż domyślny lub nowy, w zależności od określonej wartości openType) i zwraca TAGContainerFuture. | |
| (Nieważna) | + openContainerWithId:tagManager:openType:timeout:notifier: |
Odczeka maksymalnie timeout sekundy na wczytanie kontenera (innego lub najnowszego w zależności od określonej wartości openType) i wywołuje powiadomienie, gdy kontener jest dostępny. | |
| (NSTimeInterval) | + defaultTimeout |
| Zwraca domyślny czas oczekiwania żądania kontenera. | |
Dokumentacja funkcji członków
| + (id<TAGContainerFuture>) openContainerWithId: | (NSString *) | containerId | |
| Menedżer tagów: | (TAGManager *) | tagManager | |
| openType: | (TAGOpenType) | openType | |
| czas oczekiwania: | (NSTimeInterval *) | przekroczenie limitu czasu | |
Czeka maksymalnie timeout s na wczytanie kontenera (niedomyślny lub nowy, w zależności od określonej wartości openType) i zwraca TAGContainerFuture.
Jeśli otwarty jest typ kTAGOpenTypePreferNonDefault, wczytywany jest kontener inny niż domyślny (zapisany lub pobrany z sieci), a element TAGContainerFuture zostaje odblokowany w jednej z tych sytuacji:
- i zapisany kontener został załadowany.
- jeśli nie ma zapisanego kontenera, oznacza to, że został załadowany kontener sieci lub wystąpi błąd sieci.
- po upływie określonego czasu.
Jeśli wystąpi błąd sieci lub licznik czasu wygaśnie, funkcja get (TAGContainerFuture-p) może zwrócić domyślny kontener.
Jeśli otwarty jest typ kTAGOpenTypePreferFresh, wczytywany jest świeży kontener (zapisany lub pobrany z sieci), a kontener TAGContainerFuture zostanie odblokowany, gdy tylko wystąpi jedna z tych sytuacji:
- zapisany świeży kontener.
- jeśli nie ma zapisanego kontenera lub zapisany kontener jest nieaktualny, kontener sieciowy jest załadowany lub wystąpi błąd sieci.
- po upływie określonego czasu.
Jeśli wystąpi błąd sieci lub licznik czasu wygaśnie, tag get (TAGContainerFuture-p) może zawierać wartości domyślne lub nieaktualny zapisany kontener.
Jeśli ponownie wywołasz jedną z metod openContainer z danym containerId, zostanie zwrócony element TAGContainerFuture, którego polecenie get (TAGContainerFuture-p) zwróci ten sam kontener co pierwsze wywołanie.
- Parametry:
-
containerId Identyfikator kontenera do wczytania. tagManager TAGManager do pobierania kontenera. czas oczekiwania Maksymalna liczba sekund oczekiwania na wczytanie kontenera z zapisanego magazynu. Jeśli wartość to nil, używana jest wartość defaultTimeout. openType Wybór sposobu otwierania kontenera.
- Zwroty:
- TAGContainerFuture, który będzie czekać do
timeouti zwróci kontener, gdy będzie dostępny.
| + (void) openContainerWithId: | (NSString *) | containerId | |
| Menedżer tagów: | (TAGManager *) | tagManager | |
| openType: | (TAGOpenType) | openType | |
| czas oczekiwania: | (NSTimeInterval *) | przekroczenie limitu czasu | |
| powiadomienia: | (id< TAGContainerOpenerNotifier >) | powiadomienie | |
Odczeka maksymalnie timeout sekundy na wczytanie kontenera (innego lub najnowszego w zależności od określonej wartości openType) i wywołuje powiadomienie, gdy kontener jest dostępny.
Jeśli otwarty jest typ kTAGOpenTypePreferNonDefault, wczytywany i przekazywany do powiadomienia jest kontener inny niż domyślny (zapisany lub pobrany z sieci). Powiadomienie jest wywoływane w jednej z tych sytuacji:
- i zapisany kontener został załadowany.
- jeśli nie ma zapisanego kontenera, oznacza to, że został załadowany kontener sieci lub wystąpi błąd sieci.
- nie odlicza czasu.
Jeśli wystąpi błąd sieci lub licznik czasu wygaśnie, kontener przekazywany do powiadomienia jest kontenerem domyślnym.
Jeśli otwarty jest typ kTAGOpenTypePreferFresh, wczytywany jest świeży kontener (zapisany lub pobrany z sieci) i przekazywany do powiadomienia. Powiadomienie jest wywoływane w jednej z tych sytuacji:
- zapisany świeży kontener.
- jeśli nie ma zapisanego kontenera lub zapisany kontener jest nieaktualny, kontener sieciowy jest załadowany lub wystąpi błąd sieci.
- po upływie określonego czasu.
Jeśli wystąpi błąd sieci lub licznik czasu wygaśnie, kontener przekazywany do powiadomienia może zawierać wartości domyślne lub nieaktualny zapisany kontener.
Jeśli wywołasz jedną z metod openContainer po raz drugi z danym elementem containerId, ten sam kontener zwrócony z poprzedniego wywołania zostanie przekazany do powiadomienia, gdy tylko będzie dostępny.
- Parametry:
-
containerId Identyfikator kontenera do wczytania. tagManager Tag TAGManager używany do pobierania kontenera. openType Wybór sposobu otwierania kontenera. czas oczekiwania Maksymalna liczba sekund oczekiwania na wczytanie kontenera z zapisanego magazynu. Jeśli wartość to nil, używana jest wartość defaultTimeout. powiadomienia Opcjonalne powiadomienie, które zostanie wywołane, gdy kontener będzie dostępny. Zostanie wywołana z nowym kontenerem (jeśli jest dostępny) i wczyta się przed upływem czasu oczekiwania. W przeciwnym razie zostanie wywołana z nieaktualnym kontenerem. Pamiętaj, że powiadomienie może być wywoływane z innego wątku.
| + (NSTimeInterval) defaultTimeout |
Zwraca domyślny czas oczekiwania żądania kontenera.
- Zwroty:
- Domyślny limit czasu w sekundach.