ios - 当请求的属性丢失时,有没有办法解决 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 })
}
}
}
解决方案
推荐阅读
- javascript - 如何在不再次调用 api 的情况下提取数据
- javascript - Bootstrap,消除渲染阻塞资源
- python - 从数组 discord.py 中提取额外结果的代码
- openstack - openstack network create 命令给出“Keystone 服务暂时不可用”和“服务器当前不可用”
- docker - 如何使用一些自定义变量使 Gitlab CI/CD 运行容器?
- c++ - 带有 vecS 的 adjacency_list 上的`boost::edge()` 的运行时复杂度是多少?
- c# - 是否有一种标准方法可以在类之间引用相同的对象?
- checkbox - 如何在for循环角度8中的每个项目内绑定ngmodel?
- java - 本机 java 对本机应用程序隐蔽 playstore 做出反应
- html - 如何在列中显示表格