swift 如何修复:loadValuesAsynchronously在iOS 16.0中被弃用[重复]

b5buobof  于 2023-11-16  发布在  Swift
关注(0)|答案(1)|浏览(245)

此问题在此处已有答案

How to use the load(_:) method to load the duration of an AVAsset in iOS 16?(1个答案)
10天前关闭。
我一直收到一个警告,但没有破坏我的代码,但我想解决这个问题。

asset.loadValuesAsynchronously(forKeys: keys) {
    DispatchQueue.main.async {
        var error: NSError?
        let status = asset.statusOfValue(forKey: "playable", error: &error)

字符串
错误:
“loadValuesAsynchronously(forKeys:completionProperty:)”在iOS 16.0中已弃用:请改用load(_:)。对于没有AVAsyncProperty等效项的未弃用属性,请继续同步查询这些属性
“statusOfValue(forKey:error:)”在iOS 16.0中已弃用:改用status(of:)
我想给它改名,但我不知道怎么改。

jogvjijk

jogvjijk1#

你的代码如下:

asset.loadValuesAsynchronously(forKeys: keys) {
DispatchQueue.main.async {
    var error: NSError?
    let status = asset.statusOfValue(forKey: "playable", error: &error)

字符串
如警告所述,loadValuesAsynchronouslydeprecated,建议使用load(_:)。注意,它接受AVAsyncProperty作为参数。
所以,如果我们修改上面的代码片段,我们得到(例如):

let isPlayable = try await asset.load(.isPlayable)

也可以传入多个属性

相关问题