개요
컨테이너를 열기 위한 도우미 클래스
시간 제한을 지원하는 호출자를 위한 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: |
컨테이너가 로드될 때까지 (지정된 openType 에 따라 기본값 또는 최신 상태가 아님) 최대 timeout 초 동안 대기하고 TAGContainerFuture 를 반환합니다. | |
(void) | + openContainerWithId:tagManager:openType:timeout:notifier: |
컨테이너가 로드될 때까지 (지정된 openType 에 따라 기본값 또는 최신 상태가 아님) 최대 timeout 초 동안 대기하고 컨테이너를 사용할 수 있을 때 알림 기능을 호출합니다. | |
(NSTimeInterval) | + defaultTimeout |
컨테이너 요청에 대한 기본 제한 시간을 반환합니다. |
멤버 함수 문서
+ (id<TAGContainerFuture>) openContainerWithId: | (NSString *) | containerId | |
tagManager: | (TAGManager *) | tagManager | |
openType으로 변환합니다. | (TAGOpenType) | openType | |
timeout: | (NSTimeInterval *) | timeout | |
컨테이너가 로드될 때까지 (지정된 openType
에 따라 기본값 또는 최신 상태가 아님) 최대 timeout
초 동안 대기하고 TAGContainerFuture
를 반환합니다.
공개 유형이 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 *) | tagManager | |
openType으로 변환합니다. | (TAGOpenType) | openType | |
timeout: | (NSTimeInterval *) | 시간 제한 | |
알림: | (id< TAGContainerOpenerNotifier >) | 알림 | |
컨테이너가 로드될 때까지 (지정된 openType
에 따라 기본값 또는 최신 상태가 아님) 최대 timeout
초 동안 대기하고 컨테이너를 사용할 수 있을 때 알림 기능을 호출합니다.
공개 유형이 kTAGOpenTypePreferNonDefault
인 경우 기본이 아닌 컨테이너 (저장되거나 네트워크에서 가져온 컨테이너)가 로드되어 알림 프로그램으로 전달됩니다. 알림자는 다음 중 하나가 발생하는 즉시 호출됩니다.
- 저장된 컨테이너가 로드됩니다.
- 저장된 컨테이너가 없으면 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생합니다.
- 타이머가 만료됩니다.
네트워크 오류가 발생하거나 타이머가 만료되면 알리미로 전달되는 컨테이너가 기본 컨테이너가 됩니다.
공개 유형이 kTAGOpenTypePreferFresh
이면 새로운 컨테이너 (저장되었거나 네트워크에서 가져온 컨테이너)가 로드되어 알림 프로그램으로 전달됩니다. 알림자는 다음 중 하나가 발생하는 즉시 호출됩니다.
- 저장된 새로운 컨테이너가 로드됩니다.
- 저장된 컨테이너가 없거나 저장된 컨테이너가 오래된 경우 네트워크 컨테이너가 로드되거나 네트워크 오류가 발생합니다.
- 타이머가 만료됩니다.
네트워크 오류가 발생하거나 타이머가 만료되면 알림으로 전달되는 컨테이너에 기본값 또는 오래된 저장된 컨테이너가 포함될 수 있습니다.
지정된 containerId
로 openContainer 메서드 중 하나를 두 번째로 호출하면 이전 호출에서 반환된 동일한 컨테이너가 사용 가능해지는 즉시 알림자에 전달됩니다.
- 매개변수:
-
containerId 로드할 컨테이너의 ID입니다. tagManager 컨테이너를 가져오는 데 사용되는 TAGManager입니다. openType 컨테이너를 여는 방법에 대한 선택입니다. 시간 초과 저장된 저장소에서 컨테이너가 로드될 때까지 기다리는 최대 시간(초)입니다. nil인 경우 defaultTimeout이 사용됩니다. 알림 컨테이너를 사용할 수 있을 때 호출되는 선택적 알림입니다. 사용할 수 있고 제한 시간 전에 로드된 경우 새 컨테이너로 호출되며, 그렇지 않은 경우 새 컨테이너로 호출됩니다. 알림자는 다른 스레드에서 호출될 수 있습니다.
+ (NSTimeInterval) defaultTimeout(기본 시간 제한) |
컨테이너 요청에 대한 기본 제한 시간을 반환합니다.
- 반환:
- 기본 제한 시간(초)입니다.