我正在编写一个音乐播放器,并声明了一个NSMutableArray,它可以跟踪播放的歌曲。
我想知道MPMediaItem的数据大小(平均大小)是多少。
我想要制作一个数组,其中包含每个播放的MPMediaItem的信息,但是我想知道是否最好存储每个MPMediaItem,还是只存储关于歌曲(标题、艺术家和专辑标题)的信息(字符串)。
谢谢!
发布于 2014-03-01 03:12:22
这两件事(信息与MPMediaItem)实际上是一回事!它们都只是字符串的集合。MPMediaItem是指向磁盘上项的指针,它本身只是一个轻量级的信息集合(就像NSDictionary of NSStrings,这基本上就是您要做的)。
唯一的重量级人物就是收集信息的行为。例如,执行初始MPMediaQuery可能需要时间。但是一旦你得到了你的答案,不管是收藏还是媒体项目,你都可以把它们储存起来。另一方面,如果你事先知道你想要什么信息,提前收集不会有什么害处--尽管这也需要一些时间。例如,我这样做:
MPMediaQuery *query = [MPMediaQuery albumsQuery];
NSArray* albums = [query collections];
NSArray* titles = [albums valueForKey: @"repItemTitle"];其中repItemTitle是在MPMediaItemCollection上的一个类别中定义的:
- (id) repItemTitle {
return [[self representativeItem]
valueForProperty: MPMediaItemPropertyAlbumTitle];
}不过,总的来说,我会说:不要过早地优化!让应用程序正常工作。如果您稍后发现存在某种性能/内存问题,那么如果您已经正确地构造了一些东西,那么在幕后更改模型实现将是微不足道的。(但我认为你不必这么做。)
https://stackoverflow.com/questions/22109407
复制相似问题