2015-09-22 23 views
2

我有下面的代碼在我的AlbumViewController.h爲「MPMediaItem」不可見@interface聲明選擇「representativeItem」

@property MPMediaItemCollection *album; 

而且在我的.m我用這個屬性是這樣的:

MPMediaItem *item = [[_album.items objectAtIndex:i] representativeItem]; 

在Xcode 6.0上,這段代碼編譯得很好,但是在Xcode 7.0上,我總是收到「No visible interface」錯誤。

有誰知道如何處理?

回答

1

你只是想:

MPMediaItem *item = _album.items[i]; 

MPMediaItemCollectionitems方法返回MPMediaItem對象的NSArray

representativeItem屬性是MPMediaItemCollection的財產,而不是MPMediaItem,因此錯誤。

在Xcode 6上編譯的代碼,因爲objectAtIndex:返回id,您可以調用id上的任何方法。使用Xcode 7(真正的iOS 9),數組被定義爲MPMediaItem類型的數組,因此編譯器現在知道數組中的類型,並且可以在編譯時更好地執行錯誤檢查。

順便說一句 - 即使代碼編譯在Xcode 6下,它會在運行時崩潰。

相關問題