gpt4 book ai didi

swift - 'requestReview()' 在 iOS 14.0 中被弃用

转载 作者:行者123 更新时间:2023-12-03 07:36:07 29 4
gpt4 key购买 nike

在 iOS 14 中,Xcode 显示警告:

requestReview()' was deprecated in iOS 14.0


我正在使用 StoreKit 在我的应用中自动询问评论。
func requestReview() {
guard shouldRequestReview else {return}
SKStoreReviewController.requestReview()
lastRequest = Date()
}
enter image description here
如何摆脱那个警告?

最佳答案

快速解决方案

if let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
}
便捷的解决方案
这是一个真正的单线:
SKStoreReviewController.requestReviewInCurrentScene()
但首先您需要在 SKStoreReviewController 中创建以下扩展名:
extension SKStoreReviewController {
public static func requestReviewInCurrentScene() {
if let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
requestReview(in: scene)
}
}
}
这是一个 GitHub repository使用不同的 Swift 扩展,包括 requestReviewInCurrentScene() .

解释 requestReview函数在 iOS 14 中被弃用:
@available(iOS, introduced: 10.3, deprecated: 14.0)
open class func requestReview()
您需要使用 requestReview(in:)函数代替:
@available(iOS 14.0, *)
open class func requestReview(in windowScene: UIWindowScene)
可能的解决方案
  • 自定义扩展

  • 您可以创建以下扩展:
    extension UIApplication {
    var currentScene: UIWindowScene? {
    connectedScenes
    .first { $0.activationState == .foregroundActive } as? UIWindowScene
    }
    }
    并像这样使用它:
    if let scene = UIApplication.shared.currentScene {
    SKStoreReviewController.requestReview(in: scene)
    }
  • 万能单线:
  • if let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
    SKStoreReviewController.requestReview(in: scene)
    }
  • 单场景解决方案(适用于iOS)
  • if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
    SKStoreReviewController.requestReview(in: scene)
    }

    关于swift - 'requestReview()' 在 iOS 14.0 中被弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63953891/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com