PassKit API的可用性无效

时间:2017-06-20 16:17:40

标签: swift uikit passkit xcode8

我做错了什么? 我处理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是未声明的类型。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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