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의 서브클래스를 만들고 제한 시간을 0.5로 설정하여 openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener)를 호출한 다음, 구현을 containerAvailable: (TAGContainerOpenerNotifier-p)로 추가해야 합니다.

를 탭합니다. 정적 공개 멤버 함수

(id< TAGContainerFuture >)+ openContainerWithId:tagManager:openType:timeout:
 컨테이너가 로드될 때까지 최대 timeout초 동안 대기하고 (지정된 openType에 따라 기본값 또는 최신이 아님) TAGContainerFuture를 반환합니다.
(무효)+ openContainerWithId:tagManager:openType:timeout:notifier:
 컨테이너가 로드될 때까지 최대 timeout초 동안 대기하고 (지정된 openType에 따라 기본값 또는 최신이 아님) 컨테이너를 사용할 수 있을 때 알리미를 호출합니다.
(NSTimeInterval)+ defaultTimeout
 컨테이너 요청에 대한 기본 제한 시간을 반환합니다.

구성원 기능 문서

+ (id<TAGContainerFuture>) openContainerWithId: (NSString *) containerId
태그 관리자: (TAGManager *) tagManager
openType: (TAGOpenType) openType
timeout: (NSTimeInterval *) 시간 제한

컨테이너가 로드될 때까지 최대 timeout초 동안 대기하고 (지정된 openType에 따라 기본값 또는 최신이 아님) TAGContainerFuture를 반환합니다.

open 유형이 kTAGOpenTypePreferNonDefault이면 기본값이 아닌 (저장되거나 네트워크에서 가져온) 컨테이너가 로드되고 다음 중 하나가 발생하는 즉시 TAGContainerFuture가 차단 해제됩니다.

  • 저장된 컨테이너가 로드됩니다
  • 저장된 컨테이너가 없으면 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생합니다.
  • 타이머가 만료됩니다.

네트워크 오류가 발생하거나 타이머가 만료되면 get (TAGContainerFuture-p)에서 기본 컨테이너를 반환할 수 있습니다.

공개 유형이 kTAGOpenTypePreferFresh이면 새로운 (네트워크에서 저장 또는 가져온) 컨테이너가 로드되고 다음 중 하나가 발생하는 즉시 TAGContainerFuture가 차단 해제됩니다.

  • 저장된 새 컨테이너가 로드됩니다
  • 저장된 컨테이너가 없거나 저장된 컨테이너가 오래된 경우 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생한 것입니다.
  • 타이머가 만료됩니다.

네트워크 오류가 발생하거나 타이머가 만료되면 get (TAGContainerFuture-p)에 기본값 또는 비활성으로 저장된 컨테이너가 포함될 수 있습니다.

지정된 containerId로 openContainer 메서드 중 하나를 두 번째로 호출하면 TAGContainerFuture이 반환되고 get (TAGContainerFuture-p)는 첫 번째 호출과 동일한 컨테이너를 반환합니다.

매개변수:
containerId로드할 컨테이너의 ID입니다.
tagManager컨테이너를 가져오기 위한 TAGManager입니다.
제한 시간저장된 저장소에서 컨테이너를 로드할 때까지 대기하는 최대 시간(초)입니다. nil이면 defaultTimeout이 사용됩니다.
openType컨테이너를 여는 방법의 선택입니다.
반환:
최대 timeout까지 대기하고 사용 가능해지면 컨테이너를 반환하는 TAGContainerFuture입니다.
+ (void) openContainerWithId: (NSString *) containerId
태그 관리자: (TAGManager *) tagManager
openType: (TAGOpenType) openType
timeout: (NSTimeInterval *) 시간 제한
알리미: (id< TAGContainerOpenerNotifier >) 알림

컨테이너가 로드될 때까지 최대 timeout초 동안 대기하고 (지정된 openType에 따라 기본값 또는 최신이 아님) 컨테이너를 사용할 수 있을 때 알리미를 호출합니다.

open 유형이 kTAGOpenTypePreferNonDefault이면 기본값이 아닌 (저장되거나 네트워크에서 가져온) 컨테이너가 로드되어 알리미로 전달됩니다. 알리미는 다음 중 하나가 발생하는 즉시 호출됩니다.

  • 저장된 컨테이너가 로드됩니다
  • 저장된 컨테이너가 없으면 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생합니다.
  • 타이머가 만료됩니다.

네트워크 오류가 발생하거나 타이머가 만료되면 알리미에 전달된 컨테이너가 기본 컨테이너가 됩니다.

open 유형이 kTAGOpenTypePreferFresh이면 새로운 (네트워크에서 저장되거나 검색된) 컨테이너가 로드되어 알리미로 전달됩니다. 알리미는 다음 중 하나가 발생하는 즉시 호출됩니다.

  • 저장된 새 컨테이너가 로드됩니다
  • 저장된 컨테이너가 없거나 저장된 컨테이너가 오래된 경우 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생한 것입니다.
  • 타이머가 만료됩니다.

네트워크 오류가 발생하거나 타이머가 만료되는 경우 알리미로 전달된 컨테이너에 기본값 또는 저장된 오래된 컨테이너가 포함될 수 있습니다.

주어진 containerId로 openContainer 메서드 중 하나를 두 번째로 호출하면 이전 호출에서 반환된 것과 동일한 컨테이너가 사용할 수 있게 되는 즉시 알림 기능에 전달됩니다.

매개변수:
containerId로드할 컨테이너의 ID입니다.
tagManager컨테이너를 가져오는 데 사용되는 TAGManager입니다.
openType컨테이너를 여는 방법의 선택입니다.
제한 시간저장된 저장소에서 컨테이너를 로드할 때까지 대기하는 최대 시간(초)입니다. nil이면 defaultTimeout이 사용됩니다.
알리미컨테이너를 사용할 수 있을 때 호출되는 선택적 알림입니다. 가능한 경우 새 컨테이너와 함께 호출되고 제한 시간 전에 로드됩니다. 그렇지 않으면 새 컨테이너가 아닌 컨테이너로 호출됩니다. 알리미는 다른 스레드에서 호출될 수도 있습니다.
+ (NSTimeInterval) defaultTimeout

컨테이너 요청의 기본 제한 시간을 반환합니다.

반환:
기본 제한 시간(초)입니다.