gpt4 book ai didi

ios - 每个SKPaymentQueue的finishTransaction?

转载 作者:行者123 更新时间:2023-12-01 16:08:43 78 4
gpt4 key购买 nike

Documentation for SKPaymentQueue 注意:

要处理付款,请首先将至少一个观察者对象附加到
队列。

我有两个观察员,一个在AppDelegate中(用于供应内容),另一个在UIViewController中(用于根据付款进度更新UI状态)。

然后文档说明:

您的观察员应处理交易,然后将其从中删除
队列。

这是否意味着我可以像这样在两个观察者(SKPaymentQueue.default().finishTransaction(transaction)AppDelegate)中调用UIViewController:

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
switch transaction.transactionState {
case .deferred:
print("deferred")
case .purchasing:
print("purchasing")
case .purchased:
SKPaymentQueue.default().finishTransaction(transaction)
case .failed:
SKPaymentQueue.default().finishTransaction(transaction)
case .restored:
SKPaymentQueue.default().finishTransaction(transaction)
}
}
}

我以为 SKPaymentQueue.default().finishTransaction(transaction)破坏了所有侦听器的事务事件。

最佳答案

最近做了一些类似的实验后,我发现多个SKPaymentQueue观察者可以工作-每个事务都会调用它们。但是,在调用finishTransaction()之后,将不会再调用剩余的观察者(正如您在问题中所猜测的那样,这也很有意义)。

我还确定观察者似乎总是按照您添加它们的顺序被调用。因此,如果您希望两个观察者始终获得每笔交易,请确保最后添加的观察者是唯一调用finishTransaction()的观察者。

关于ios - 每个SKPaymentQueue的finishTransaction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43691161/

78 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com