2017-10-16 42 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。因爲沒有設置這兩個屬性,所有與dataSource &委託相關的方法都不會執行。

+0

有問題的方法是可選的,它不適用於我。所有其他方法的工作。它是數據源。但並不重要 - 內容會加載並顯示在CarPlay上。由於其他原因,我需要此方法 –

+0

您列出的方法是從「MPPlayableContentDataSource」協議繼承的。因此,如果您不是將該協議繼承到該類,那麼您定義的方法將像我們使用的其他方法一樣工作。這意味着它不會執行,直到你打電話。因此,只要在定義類時檢查是否繼承了此協議。作爲參考,你可以通過這個鏈接https://developer.apple.com/documentation/mediaplayer/mpplayablecontentdatasource?language=objc –

+0

所有其他方法的工作。我的課程符合MPPlayableContentDataSource協議。 –