'MPMediaItem' 没有可见的@interface 声明了选择器 'representativeItem'
No visible @interface for 'MPMediaItem' declares the selector 'representativeItem'
我的 AlbumViewController.h
上有以下代码
@property MPMediaItemCollection *album;
在我的 .m 上,我这样使用 属性:
MPMediaItem *item = [[_album.items objectAtIndex:i] representativeItem];
在 Xcode 6.0 上,此代码编译得很好,但在 Xcode 7.0 上,我不断收到 "No visible interface" 错误。
有人知道怎么处理吗?
您只需要:
MPMediaItem *item = _album.items[i];
MPMediaItemCollection
returns NSArray
个 MPMediaItem
个对象的 items
方法。
representativeItem
属性 是 MPMediaItemCollection
的 属性,而不是 MPMediaItem
,因此出现错误。
代码在 Xcode 6 上编译,因为 objectAtIndex:
returns 和 id
并且您可以在 id
上调用任何方法。使用 Xcode 7(实际上是 iOS 9),数组被定义为 MPMediaItem
类型的数组,因此编译器现在知道数组中的类型并且可以在以下位置执行更好的错误检查编译时间。
顺便说一句 - 即使代码在 Xcode 6 下编译,它也会在运行时崩溃。
我的 AlbumViewController.h
上有以下代码@property MPMediaItemCollection *album;
在我的 .m 上,我这样使用 属性:
MPMediaItem *item = [[_album.items objectAtIndex:i] representativeItem];
在 Xcode 6.0 上,此代码编译得很好,但在 Xcode 7.0 上,我不断收到 "No visible interface" 错误。
有人知道怎么处理吗?
您只需要:
MPMediaItem *item = _album.items[i];
MPMediaItemCollection
returns NSArray
个 MPMediaItem
个对象的 items
方法。
representativeItem
属性 是 MPMediaItemCollection
的 属性,而不是 MPMediaItem
,因此出现错误。
代码在 Xcode 6 上编译,因为 objectAtIndex:
returns 和 id
并且您可以在 id
上调用任何方法。使用 Xcode 7(实际上是 iOS 9),数组被定义为 MPMediaItem
类型的数组,因此编译器现在知道数组中的类型并且可以在以下位置执行更好的错误检查编译时间。
顺便说一句 - 即使代码在 Xcode 6 下编译,它也会在运行时崩溃。