尝试在启动之间持久保存MPMediaItem

时间:2018-07-17 05:14:11

标签: ios mpmediaitem

我已经保存了从MPMediaPickerController返回的MPMediaItem,方法是保存其持久ID(即MPMediaEntityPersistentID)。当我将其传递给MPMediaQuery时,我得到的是MPMediaEntity(MPMediaItem的超类)。尝试将其强制转换为MPMediaItem会产生异常。

    // recover MPMediaItem
    let predicateId = MPMediaPropertyPredicate(value: self.persistentID?.uint64Value,
                                               forProperty: MPMediaItemPropertyPersistentID,
                                               comparisonType:MPMediaPredicateComparison.equalTo)
    let query = MPMediaQuery.init()
    query.addFilterPredicate(predicateId)
    let collection = MPMediaItemCollection(items: query.items!)
    //at this point collection[0] contains a MPMediaEntry

1 个答案:

答案 0 :(得分:-1)

这是一个错觉(很奇怪),我很好奇为什么编译器没有捕获。

//at this point collection.items[0] contains the expected MPMediaItem
//why accessing collection[0] works at all is mysterious