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 года (я не видел более новую версию, по крайней мере, не в сети), не упоминает асинхронные методы.