我的AlbumViewController.h上有以下代码
@property MPMediaItemCollection *album;
在我的.m文件中,我使用以下属性:
MPMediaItem *item = [[_album.items objectAtIndex:i] representativeItem];
在Xcode 6.0上,此代码可以正常编译,但是在Xcode 7.0上,我始终收到“无可见接口”错误。
有人知道如何处理吗?
最佳答案
您只想要:
MPMediaItem *item = _album.items[i];
items
的MPMediaItemCollection
方法返回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/