MPPlayableContentDataSource не вызывает contentItemForIdentifier:completeHandler:

Я работаю с CarPlay(симулятор 10.3.1) и реализую все методы в MPPlayableContentDataSource, но метод ниже не вызывается.

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

Кто-нибудь знает какие-либо причины?

1 ответ

Вы установили делегат и источник данных для MPPlayableContentDataSource. Потому что без установки этих двух свойств все методы, связанные с dataSource и делегатом, не будут выполняться.

numberOfChildItemsAtIndexPath: а также contentItemAtIndexPath: это синхронный API, который обычно используется.

Насколько я понимаю, CarPlay использует только contentItemForIdentifier:completionHandler: когда вы запускаете асинхронную загрузку через beginLoadingChildItemsAtIndexPath:completionHandler,

FWIW, официальное руководство по программированию аудио CarPlay по состоянию на март 2017 года (я не видел более новую версию, по крайней мере, не в сети), не упоминает асинхронные методы.

Другие вопросы по тегам