首页 > 解决方案 > 当请求的属性丢失时,有没有办法解决 MPMediaItem.enumerateValues 崩溃?

问题描述

当媒体项上缺少请求的属性时,我遇到了崩溃 ( EXC_BAD_ACCESS) 。MPMediaItem.enumerateValues崩溃发生在swift_getObjectType

我可以通过对属性使用单独的访问器来解决这个问题,但 Apple 表示enumerateValues访问多个属性时会更快。

有没有人在使用时能够处理这个问题enumerateValues

(XCode 13.1,iOS 14.8)

func EnumerateValuesCrash() {
    
    let propertiesSet: Set<String> = [
        MPMediaItemPropertyTitle,
        MPMediaItemPropertyArtist
    ]
    
    let query = MPMediaQuery.songs()
    if let items = query.items {
        let mediaCollection = MPMediaItemCollection(items: items)
        for song in mediaCollection.items {
            song.enumerateValues(forProperties: propertiesSet, using: {_,_,_ in })
        }
    }
}

标签: iosswiftswift3mpmediaitemmpmediaitemcollection

解决方案


推荐阅读