2017-10-16 1 views
7

CarPlay (시뮬레이터 10.3.1)에서 작업 중이며 MPPlayableContentDataSource의 모든 메서드를 구현하지만 아래 메서드는 호출되지 않습니다.MPPlayableContentDataSource가 contentItemForIdentifier를 호출하지 않습니다. completionHandler :

- (void)contentItemForIdentifier:(NSString *)identifier completionHandler:(void(^)(MPContentItem *__nullable, NSError * __nullable))completionHandler 

아무 이유가 있습니까?

+0

someOfItems 메서드에는 0 개 항목이있을 수 있습니다. 또는 식별자가 등록되어 있지 않은 경우 –

+0

다른 모든 메소드가 호출됩니다. 식별자가 있습니다 –

+0

문서에'콘텐츠 항목이로드 된 후 호출되는 블록 '이라고 표시됩니다. 콘텐츠 항목이로드되지 않는 것 같습니다. – Lefteris

답변

0

MPPlayableContentDataSource의 대표 & 데이터 소스를 설정 했습니까? 이 두 속성을 설정하지 않으면 dataSource & 대리자와 관련된 모든 메서드가 실행되지 않습니다.

+0

해당 메소드는 선택 사항이며 나에게 적합하지 않습니다. 다른 모든 방법도 사용할 수 있습니다. 그것은 dataSource입니다. 그러나 중요하지 않습니다. 콘텐츠가 CarPlay에로드되고 표시됩니다. 다른 이유로이 방법이 필요합니다. –

+0

나열된 방법은 "MPPlayableContentDataSource"프로토콜에서 상속됩니다. 따라서 해당 프로토콜을 해당 클래스에 상속하지 않으면 정의한 메서드가 우리가 사용하는 다른 메서드처럼 작동합니다. 즉, 호출 할 때까지 실행되지 않습니다. 따라서 클래스가 정의 될 때이 프로토콜을 상속 받았는지 여부를 교차 확인하십시오. 참고로이 링크를 통해 이동할 수 있습니다. https://developer.apple.com/documentation/mediaplayer/mpplayablecontentdatasource?language=objc –

+0

다른 모든 방법이 작동합니다. 내 수업 MPPlayableContentDataSource 프로토콜을 준수합니다. –