使用MPMediaItemPropertyPersistentID获取相应的MPMediaItem

时间:2015-10-17 02:23:01

标签: ios mpmediaitem

我需要使用NSUserDefaults检索存储的持久ID来检索相应的MPMediaItem。我目前的做法是获取所有MPMediaItems,循环遍历它们,并找出与我存储的具有相同持久ID的那个。我认为这是一个非常糟糕的性能,所以有一个现有的方法来获取MPMediaItem与我拥有的持久ID吗?我检查了Apple的文档,但我找不到。

1 个答案:

答案 0 :(得分:7)

通过使用唯一ID查询查找MPMediaItem项目,您可以获得比线性效果更好的效果:

MPMediaQuery*   query = [MPMediaQuery songsQuery];  // general songs query

MPMediaPropertyPredicate* pred = [MPMediaPropertyPredicate predicateWithValue:persistentID
                                                                  forProperty:MPMediaItemPropertyPersistentID];
// narrow the query down to just items with that ID
[query addFilterPredicate:pred];

// now get items (there should be only one):
MPMediaItem *item = [query.items firstObject];