我在 Swift 中有一个 iOS 应用程序,它实现了 paymentQueue(_:shouldAddStorePayment:for:)
SKPaymentTransactionObserver
中的方法.但是,当我使用 Mac Catalyst 将此应用程序移植到 Mac 时,每当我尝试在 Mac 上编译和运行它时,都会出现此编译错误,其中显示“无法覆盖已标记为不可用的‘paymentQueue’”。
我尝试添加 #if os(iOS) ... #endif
和 @available(iOS 11, *)
paymentQueue
周围的声明方法,但它仍然给我这个错误。
这是当前错误缠身的代码:
#if os(iOS)
func paymentQueue(_ queue: SKPaymentQueue, shouldAddStorePayment payment: SKPayment, for product: SKProduct) -> Bool {
return true
}
#endif
还有其他人遇到这个问题吗?
最佳答案
您可以使用 !targetEnvironment(macCatalyst)
阻止代码被编译到 Mac Catalyst 版本中。健康)状况:
#if !targetEnvironment(macCatalyst)
func paymentQueue(_ queue: SKPaymentQueue,
shouldAddStorePayment payment: SKPayment,
for product: SKProduct) -> Bool {
return true
}
#endif
关于ios - Mac Catalyst 错误 : Cannot override 'paymentQueue' which has been marked unavailable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61536012/