如何修复:loadValuesAsynchronously 在 iOS 16.0 中已弃用

问题描述 投票:0回答:1

我不断收到警告,该警告不会破坏我的代码,但我想解决该问题。

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

错误:

“loadValuesAsynchronously(forKeys:completionHandler:)”在 iOS 16.0 中已弃用:请改用 load(_:)。对于没有 AVAsyncProperty 等效项的未弃用属性,请继续同步查询这些属性

“statusOfValue(forKey:error:)”在 iOS 16.0 中已弃用:改用 status(of:)

尝试重命名但不知道如何。

ios swift avfoundation
1个回答
0
投票

您的代码是这样的:

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

正如警告所述,

loadValuesAsynchronously
已弃用,建议使用
load(_:)
。请注意,它接受 AVAsyncProperty 作为参数。

因此,如果我们修改上面的代码片段,我们会得到(例如):

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

还可以传入多个属性

© www.soinside.com 2019 - 2024. All rights reserved.