根本问题是SkPaymentQueue.defaultQueue().addPayment()不允许您传递回调函数,并且无法将运行时(我知道)的函数传递给SKPaymentTransactionObserver.我正在使用React-native版本0.28创建一个允许我进行应用内购买的模块,但是我想在应用内购买完成后回调一个
Javascript函数.
因此,我将在类中存储对RCTResponseSenderBlock回调的引用,并在SKPaymentTransactionObserver中引用它.但是,我不知道如何在Swift中引用一个函数.
我试过制作以下变量
weak var purchaseCallback:RCTResponseSenderBlock = nil
在课程的顶部,所以我可以设置它并在以后引用它;然而,斯威夫特抱怨如下:
Nil无法初始化指定类型’RCTResponseSenderBlock’
如果有办法处理功能参考和/或更好的方式进行购买回调,我会感激一些帮助!
最佳答案 正如Bryan Chen在上面的评论中指出的那样,使变量可选成功.
这是我如何定义保存回调的变量:
var purchaseCallback: RCTResponseSenderBlock? = nil
这是我如何存储Swift中由React-native调用的函数的函数引用:
@objc func purchaseProduct(identifier: String, callback successCallback: RCTResponseSenderBlock) {
purchaseCallback = successCallback
}