2017-10-16 3 views
7

私はCarPlay(シミュレータ10.3.1)で作業しており、MPPlayableContentDataSourceのすべてのメソッドを実装していますが、以下のメソッドは呼び出されません。MPPlayableContentDataSourceはcontentItemForIdentifierを呼び出しません:completionHandler:

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

誰もが何らかの理由を知っていますか?

+0

numberOfItemsメソッドに0個のアイテムがある可能性がありますか?または識別子が登録されていない可能性があります。 –

+0

他のすべてのメソッドが呼び出されます。私は識別子を持っています –

+0

ドキュメンテーションは 'コンテンツアイテムがロードされた後に呼び出されるブロック 'と言っていますので、あなたのコンテンツアイテムがロードされていないと思います – Lefteris

答えて

0

MPPlayableContentDataSourceのデリゲート& dataSourceを設定しましたか?この2つのプロパティを設定しないと、dataSource &デリゲートに関連するすべてのメソッドは実行されません。

+0

問題の方法はオプションで、私にとってはうまくいかない。その他の方法はすべて機能します。それはdataSourceです。しかし、CarPlayにコンテンツが読み込まれて表示されても問題ありません。他の理由でこのメソッドが必要です –

+0

"MPPlayableContentDataSource"プロトコルから継承したメソッドが継承されています。したがって、そのプロトコルをそのクラスに継承していない場合、定義するメソッドは、使用する他のメソッドと同じように動作します。つまり、あなたが呼び出すまで実行されません。クラスが定義されているときにこのプロトコルを継承しているかどうかをチェックするだけです。参考のため、https://developer.apple.com/documentation/mediaplayer/mpplayablecontentdatasource?language=objc –

+0

のリンクを参照してください。その他の方法はすべて動作します。私のクラスはMPPlayableContentDataSourceプロトコルに準拠しています。 –

関連する問題