我需要使用NSUserDefaults存储的持久ID检索相应的MPMediaItem.我目前的做法是获取所有MPMediaItems,循环遍历它们,并找出与我存储的具有相同持久ID的那个.我认为这是一个非常糟糕的性能,所以有一个现有的方法来获取MPMediaItem与我拥有的持久ID吗?我检查了Apple的文档,但我找不到.
通过MPMediaItem使用唯一ID查询查找项目,您可以获得比线性性能更好的效果:
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];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1026 次 |
| 最近记录: |