在 iOS 中使用 MPMediaItem 时是不是需要使用 mutableCopy 到 NSMutableArray?
Posted
技术标签:
【中文标题】在 iOS 中使用 MPMediaItem 时是不是需要使用 mutableCopy 到 NSMutableArray?【英文标题】:Do i need to use mutableCopy to NSMutableArray when using MPMediaItem in iOS?在 iOS 中使用 MPMediaItem 时是否需要使用 mutableCopy 到 NSMutableArray? 【发布时间】:2013-01-23 17:15:38 【问题描述】:大家好,请指导我一些事情。
我正在使用iPodMusicPlayer
制作自定义音乐应用程序。
这是我从 iPodLibrary 加载歌曲的一些代码。
MPMediaQuery *query = [MPMediaQuery playlistsQuery];
MPMediaPropertyPredicate *filter = [MPMediaPropertyPredicate predicateWithValue:self.playlistName forProperty:MPMediaPlaylistPropertyName comparisonType:MPMediaPredicateComparisonContains];
[query addFilterPredicate:filter];
**self.app.arrayFromAppDelegate = (NSMutableArray *)[query items];**
self.userMediaItemCollection = [[MPMediaItemCollection alloc] initWithItems:self.app.arrayFromAppDelegate];
[self.player setQueueWithItemCollection:self.userMediaItemCollection];
根据上面的代码
self.app.arrayFromAppDelegate = (NSMutableArray *)[query items];
arrayFromAppDelegate 是我在AppDelegate
中声明的NSMutableArray
。
[query items];
返回 NSArray
我用指针添加到 NSMutableArray
(NSMutableArray *)
当我这样使用的时候是正确的方式吗?
或者我应该像self.app.arrayFromAppDelegate = [[query items] mutableCopy];
这样使用
哪种方式最适合记忆,使用mutableCopy
后是否需要使用removeAllObject
?
请指导我。
抱歉我的英语不好。
感谢您的帮助。
【问题讨论】:
【参考方案1】:如果您要从 NSArray
转到 NSMutableArray
,不要只转换它,而是使用可变副本。
【讨论】:
使用后需要removeAllObject吗? 如果您指的是何时发布它(我使用 arc),您不应该这样做。 是的,我使用了 ARC。所以我不需要使用 removeAllObject? 是的,当你的可变数组被释放时,它会释放数组中的所有对象。现在这是从记忆的角度来看。以上是关于在 iOS 中使用 MPMediaItem 时是不是需要使用 mutableCopy 到 NSMutableArray?的主要内容,如果未能解决你的问题,请参考以下文章
从 MPMediaItem 播放电影 (iPad/IOS5)
错误:iOS 和 MPMediaPropertyPredicate 上的 MPMediaItem 下载状态使用assetURL
iPhone 4 iOS 5 如何使用 Core Data 保存 MPMediaItem?
iOS:降低包含 iPod 音乐的 MPMediaItem 的比特率