2015-10-17 80 views
1

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

回答

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]; 
+0

非常有帮助。非常感谢你! :) –