我的AlbumViewController.h上有以下代码

@property MPMediaItemCollection *album;

在我的.m文件中,我使用以下属性:
MPMediaItem *item = [[_album.items objectAtIndex:i] representativeItem];

在Xcode 6.0上,此代码可以正常编译,但是在Xcode 7.0上,我始终收到“无可见接口”错误。

有人知道如何处理吗?

最佳答案

您只想要:

MPMediaItem *item = _album.items[i];
itemsMPMediaItemCollection方法返回NSArray对象的MPMediaItem
representativeItem属性是MPMediaItemCollection的属性,而不是MPMediaItem,因此是错误。

在Xcode 6上编译的代码,因为objectAtIndex:返回id,并且您可以在id上调用任何方法。使用Xcode 7(实际上是iOS 9),该数组被定义为MPMediaItem类型的数组,因此编译器现在知道该数组中的类型,并且可以在编译时执行更好的错误检查。

顺便说一句-即使在Xcode 6下编译的代码也可能在运行时崩溃。

关于ios - 'MPMediaItem'没有可见的@interface声明选择器'representativeItem',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32721678/

10-16 18:52