2013-03-19 123 views
1

我试图检索我的iPod库中歌曲的曲目号。MPMediaItem这个类不是密钥编码兼容密钥

基本上我查询了所有专辑如下:通过歌曲

MPMediaItemCollection *album = self.albums[0]; 

迭代和尝试登录的磁道数

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

NSArray *albums = [MPMediaQuery albumsQuery].collections; 

检索到的一张专辑

但是这给了我以下错误

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

如果我尝试其他密钥,如MPMediaItemPropertyTitle,MPMediaItemPropertyAlbumTitleMPMediaItemPropertyArtist工作正常。有什么我错过了为什么我不能访问MPMediaItemPropertyAlbumTrackCount

+0

请检查此问题http://stackoverflow.com/questions/11090359/faster-sort-of-nsmutablearray-of-mpmediaitems-code-review – 2013-03-19 12:24:42

回答

7

您使用了valueForKey:这就是错误发生的原因。使用valueForProperty:像:

NSLog(@"Track Number %@", [mediaItem valueForProperty:MPMediaItemPropertyAlbumTrackCount]); 

MPMediaItem Class Referece苹果说:

通过调用valueForProperty 方法使用这些属性键获得媒体项目的元数据。

+0

omg。我简直不敢相信。谢谢 – 2013-03-19 12:33:53

+0

@EdwardHuynh:高兴:) – 2013-03-19 12:35:31