PassKit API 可用性不起作用



我做错了什么?我处理 Apple Pay (PassKit(,为了使我的应用程序在符合 PKPaymentAuthorizationViewControllerDelegate 协议的一个视图控制器中的 iOS 11 中正常工作并且不会崩溃,必须调用此委托回调。

@available(iOS 11.0, *)
    func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, handler completion: @escaping (PKPaymentAuthorizationResult) -> Void) {
        // ...
}

我无法在 Xcode 8.3 中编译它。我正在使用 @available 属性,但它抱怨PKPaymentAuthorizationResult是一个未声明的类型。

有什么想法吗?

您需要使用

Xcode 9 才能使用 PKPaymentAuthorizationResult ,因为它仅在 iOS 11 及更高版本上受支持。 在代码中进行可用性检查是不够的,因为 Xcode 8.3 附带的 PassKit 框架没有此类。

如果要在 Xcode 8 中使用此类,则需要使用该类的前向声明、将标头添加到项目中或使用反射。

相关内容

  • 没有找到相关文章