ios - Mac Catalyst 错误 : Cannot override 'paymentQueue' which has been marked unavailable

标签 ios swift macos in-app-purchase mac-catalyst

我在 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/

相关文章:

c++ - 在没有停靠栏图标的 Mac OS X 中启动 GUI 进程

python - 在mac中查找特定类型的文件(python)

java - Mac 上 Java 进程的 PID

swift - iOS11 中缺少导航栏标题 View

swift - 如何通过 Swift 3 中的所有 Controller 使用声音文件

ios - iOS中可以打开的套接字连接数量有限制吗?

ios - 删除 View 并加载另一个 View

swift - 使用 Swift 在 SpriteKit 中计算增量

ios - 如何在 swift ios 中显示从服务器到您的手机的任何扩展文件?

objective-c - 如何从导航栏中删除按钮?