개요
컨테이너를 열기 위한 도우미 클래스입니다.
이는 시간 제한을 지원하는 호출자를 위한 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 |
컨테이너 요청의 기본 제한 시간을 반환합니다.
- 반환:
- 기본 제한 시간(초)입니다.