개요
임의의 길이의 미디어 큐의 데이터 모델 표현입니다.
이 클래스는 미디어 대기열 UI를 구동하기 위한 UITableViewDataSource 구현의 기반으로 사용할 수 있습니다.
GCKMediaQueue는 GCKSessionManager 이벤트를 수신 대기하고 Cast 세션이 시작되면 자동으로 GCKRemoteMediaClient에 연결됩니다. GCKRemoteMediaClient에서 큐 변경 알림을 수신 대기하고 그에 따라 내부 데이터 모델을 업데이트합니다. 마찬가지로 GCKRemoteMediaClient를 사용하여 요청 시 큐 정보를 가져옵니다.
모델은 전체 큐의 큐 항목 ID 목록을 유지합니다. Cast 세션에 연결될 때마다 자동으로 이 목록을 가져옵니다. 또한 큐 항목 ID로 키가 지정된 GCKMediaQueueItems의 LRU 캐시 (구성 가능한 크기)를 유지합니다.
itemAtIndex: (GCKMediaQueue) 메서드는 지정된 색인에서 큐 항목을 가져오는 데 사용됩니다. GCKMediaQueueItem가 현재 캐시에 없는 경우 수신기에서 항목을 가져오기 위해 비동기식 요청이 이루어지며 요청된 항목이 수신될 때 대리자에게 알림이 전송됩니다.
매우 짧은 시간에 이 메서드에 대한 여러 호출이 이루어지는 경우 요청된 항목 ID가 내부적으로 일괄 처리되어 네트워크 요청 횟수가 줄어듭니다. 한 번에 수신기에서 가져올 수 있는 큐 항목 수에 상한이 있으므로 GCKMediaQueue는 가져올 마지막 N개 항목 ID의 롤링 기간을 유지합니다. 따라서 짧은 시간 내에 매우 많은 수의 항목을 요청하면 실제로 마지막 N개의 항목만 가져옵니다. 이 동작을 통해 앱 UI에서 사용자가 빠르게 또는 자주 스크롤할 수 있는 매우 긴 큐를 효율적으로 관리할 수 있습니다.
GCKMediaQueue는 큐를 직접 수정하는 메서드를 제공하지 않습니다. 이러한 변경사항에는 GCKRemoteMediaClient의 메서드를 통한 수신자에 대한 비동기 네트워크 요청이 포함되고 이 작업은 잠재적으로 오류와 함께 실패할 수 있기 때문입니다. GCKMediaQueue는 수신기에 있는 대로 큐를 일관되게 표시해야 하므로 아직 수신기에 커밋되지 않은 데이터 모델을 로컬에서 변경하면 잘못된 UI 동작이 발생할 수 있습니다.
위임 프로토콜은 GCKMediaQueueDelegate를 참고하세요.
- 다음 이후:
- 4.3.4
NSObject를 상속합니다.
인스턴스 메서드 요약 | |
(instancetype) | - init |
(instancetype) | - initWithRemoteMediaClient: |
기본 캐시 크기와 기본 최대 가져오기 횟수를 사용하여 새 GCKMediaQueue를 초기화합니다. 더보기... | |
(instancetype) | - initWithRemoteMediaClient:cacheSize: |
지정된 캐시 크기와 기본 최대 가져오기 횟수를 사용하여 새 GCKMediaQueue를 초기화합니다. 더보기... | |
(instancetype) | - initWithRemoteMediaClient:cacheSize:maxFetchCount: |
지정된 캐시 크기와 지정된 최대 가져오기 횟수를 사용하여 새 GCKMediaQueue를 초기화합니다. 더보기... | |
(void) | - addDelegate: |
이 객체의 위임 목록에 위임을 추가합니다. 더보기... | |
(void) | - removeDelegate: |
이 객체의 위임 목록에서 대리인을 삭제합니다. 더보기... | |
(nullable GCKMediaQueueItem *) | - itemAtIndex: |
대기열의 지정된 색인에 있는 미디어 대기열 항목을 반환하거나 현재 캐시에 없는 경우 수신기에서 항목을 가져오도록 준비합니다. 더보기... | |
(nullable GCKMediaQueueItem *) | - itemAtIndex:fetchIfNeeded: |
대기열의 지정된 색인에 있는 미디어 대기열 항목을 반환하거나 선택적으로 항목이 현재 캐시에 없는 경우 수신기에서 항목을 가져오도록 합니다. 더보기... | |
(GCKMediaQueueItemID) | - itemIDAtIndex: |
대기열의 지정된 색인에 있는 항목의 항목 ID를 반환합니다. 더보기... | |
(NSInteger) | - indexOfItemWithID: |
대기열에서 대기열 항목의 색인을 조회합니다. 더보기... | |
(void) | - reload |
큐를 새로고침합니다. 더보기... | |
(void) | - clear |
큐를 지우고 모든 요소를 삭제하고 캐시를 플러시합니다. 더보기... | |
속성 요약 | |
NSUInteger | itemCount |
현재 큐에 있는 항목의 수입니다. 더보기... | |
NSUInteger | cacheSize |
캐시 크기입니다. 더보기... | |
NSUInteger | cachedItemCount |
현재 캐시에 있는 큐 항목 수입니다. 더보기... | |
메서드 세부정보
- (instancetype) initWithRemoteMediaClient: | (GCKRemoteMediaClient *) | remoteMediaClient |
기본 캐시 크기와 기본 최대 가져오기 횟수를 사용하여 새 GCKMediaQueue를 초기화합니다.
- (instancetype) initWithRemoteMediaClient: | (GCKRemoteMediaClient *) | remoteMediaClient | |
cacheSize: | (NSUInteger) | cacheSize | |
지정된 캐시 크기와 기본 최대 가져오기 횟수를 사용하여 새 GCKMediaQueue를 초기화합니다.
- Parameters
-
cacheSize The cache size. Must be nonzero.
- (instancetype) initWithRemoteMediaClient: | (GCKRemoteMediaClient *) | remoteMediaClient | |
cacheSize: | (NSUInteger) | cacheSize | |
maxFetchCount: | (NSUInteger) | maxFetchCount | |
지정된 캐시 크기와 지정된 최대 가져오기 횟수를 사용하여 새 GCKMediaQueue를 초기화합니다.
- Parameters
-
cacheSize The cache size. Must be nonzero. maxFetchCount The maxiumum fetch count with minimum being 1.
- (void) addDelegate: | (id< GCKMediaQueueDelegate >) | delegate |
이 객체의 위임 목록에 위임을 추가합니다.
- Parameters
-
delegate The delegate to add. The delegate will be retained until removeDelegate: is called.
- (void) removeDelegate: | (id< GCKMediaQueueDelegate >) | delegate |
이 객체의 위임 목록에서 대리인을 삭제합니다.
- Parameters
-
delegate The delegate to remove.
- (nullable GCKMediaQueueItem *) itemAtIndex: | (NSUInteger) | index |
대기열의 지정된 색인에 있는 미디어 대기열 항목을 반환하거나 현재 캐시에 없는 경우 수신기에서 항목을 가져오도록 준비합니다.
- Parameters
-
index The index of the item to fetch.
- 반환 값
- 지정된 색인에 있는 항목 또는 항목이 현재 캐시에 없지만 비동기식으로 가져오는 경우
nil
입니다.
- (nullable GCKMediaQueueItem *) itemAtIndex: | (NSUInteger) | index | |
fetchIfNeeded: | (BOOL) | fetch | |
대기열의 지정된 색인에 있는 미디어 대기열 항목을 반환하거나 선택적으로 항목이 현재 캐시에 없는 경우 수신기에서 항목을 가져오도록 합니다.
- Parameters
-
index The index of the item to fetch. fetch Whether the item should be fetched from the receiver if it is not currently in the cache.
- 반환 값
- 지정된 색인에 있는 항목 또는 항목이 현재 캐시에 없는 경우
nil
입니다.
- (GCKMediaQueueItemID) itemIDAtIndex: | (NSUInteger) | index |
대기열의 지정된 색인에 있는 항목의 항목 ID를 반환합니다.
- 반환 값
- 지정된 색인의 항목 ID 또는 색인이 유효하지 않은 경우 kGCKMediaQueueInvalidItemID입니다.
- (NSInteger) indexOfItemWithID: | (GCKMediaQueueItemID) | itemID |
대기열에서 대기열 항목의 색인을 조회합니다.
- Parameters
-
itemID The queue item ID.
- 반환 값
- 큐에 있는 항목의 색인 (즉, 기본 위치)이거나 큐에 해당 항목이 없는 경우 NSNotFound입니다.
- (void) reload |
큐를 새로고침합니다.
캐시가 삭제되고 상품 ID 목록을 수신기에서 다시 가져옵니다.
- (void) clear |
큐를 지우고 모든 요소를 삭제하고 캐시를 플러시합니다.
부동산 세부정보
|
readnonatomicassign |
현재 큐에 있는 항목의 수입니다.
|
readnonatomicassign |
캐시 크기입니다.
|
readnonatomicassign |
현재 캐시에 있는 큐 항목 수입니다.