如何从 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?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 NSMutableArray 中的特定 URL 动态创建 MKTileOverlay
如何找到 Apache 在 Linux 中使用的 MPM 模型(worker、prefork 或 event)