如何从 NSMutableArray 创建 MPMediaCollection?

Posted

技术标签:

【中文标题】如何从 NSMutableArray 创建 MPMediaCollection?【英文标题】:How to create MPMediaCollection from NSMutableArray? 【发布时间】:2015-10-01 01:36:11 【问题描述】:

所以我制作了一个允许用户创建自己的播放列表的应用程序,并且我正在使用 ios 的 MediaPlayer 框架。在我将我的 X 代码更新到最新版本之前,我没有遇到任何问题,但是当我更新我的 X 代码时,我收到了以下错误警告:

..../playlistV2VC.swift:325:37:无法使用类型为“(项目:MPMediaItem?)”的参数列表调用类型“MPMediaItemCollection”的初始化程序

这是我的代码:

currentCollectionArray.addObject(User.currentSongAdded!)
var newCollection = MPMediaItemCollection(items: [currentCollectionArray] as? MPMediaItem)

User.currentSong 已添加!是一个新的 MPMediaItem。

给我任何建议,不管是 obj-c 还是 swift

【问题讨论】:

这很简单,但你需要解释一下currentCollectionArray是什么。 【参考方案1】:

如果 currentCollectionArray 是 MPMediaItem 的 Swift 数组,则只需说 MPMediaItemCollection(items: currentCollectionArray)

如果不是,那么应该是。您无需在这里使用 NSMutableArray。

如果它是 NSMutableArray,那么您将不得不双重转换:MPMediaItemCollection(items: currentCollectionArray as NSArray as! [MPMediaItem])

但是说真的,除非必须,否则不要使用 NSMutableArray。这不值得痛苦。

【讨论】:

我试过使用数组和追加,结果会一样吗? 你在说什么“结果”? MPMediaColelction 当然。如果您不相信我,请查看此代码。 github.com/mattneub/Programming-iOS-Book-Examples/blob/master/… 看看我如何将self.items 组成一个媒体项目集合并将其交给队列播放器。这里没有 NSMutableArray。

以上是关于如何从 NSMutableArray 创建 MPMediaCollection?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 NSSet 返回 NSMutableArray

如何根据 NSMutableArray 中的特定 URL 动态创建 MKTileOverlay

如何从 NSMutableArray 中删除对象?

如何找到 Apache 在 Linux 中使用的 MPM 模型(worker、prefork 或 event)

如何从 NSMutableArray 中删除 nil 对象?

如何从 NSMutableArray 中获取货币总和 [重复]