Попытка сохранить MPMediaItem при запуске

Я сохранил MPMediaItem, возвращенный из MPMediaPickerController, сохранив его persistentID (который является 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 ответ

Это был ошибочный тик (так), что мне любопытно, почему компилятор не ловит.

//at this point collection.items[0] contains the expected MPMediaItem
//why accessing collection[0] works at all is mysterious
Другие вопросы по тегам