MPMediaItem此类不是密钥值编码兼容的密钥

Edw*_*ynh 2 mpmediaitem ios

我试图检索iPod库中歌曲的曲目编号.

基本上我已经查询了所有相册,如下所示:

NSArray *albums = [MPMediaQuery albumsQuery].collections;
Run Code Online (Sandbox Code Playgroud)

检索到一张专辑:

MPMediaItemCollection *album = self.albums[0];
Run Code Online (Sandbox Code Playgroud)

迭代歌曲并尝试记录曲目编号

for (MPMediaItem *mediaItem in self.album.items)
{
    NSLog(@"Track Number %@", [mediaItem valueForKey:MPMediaItemPropertyAlbumTrackCount]);
}
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误

Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[<MPConcreteMediaItem 0x1cd818d0> valueForUndefinedKey:]: this class is 
not key value coding-compliant for the key albumTrackCount.'
Run Code Online (Sandbox Code Playgroud)

如果我尝试其他键MPMediaItemPropertyTitle,MPMediaItemPropertyAlbumTitle或者MPMediaItemPropertyArtist工作正常.有什么我不知道为什么我无法访问MPMediaItemPropertyAlbumTrackCount.

Mid*_* MP 8

你使用了valueForKey:这就是错误发生的原因.使用valueForProperty:如下:

NSLog(@"Track Number %@", [mediaItem valueForProperty:MPMediaItemPropertyAlbumTrackCount]);
Run Code Online (Sandbox Code Playgroud)

MPMediaItem Class Referece Apple中说:

通过使用这些属性键调用valueForProperty方法,可以获取媒体项的元数据.