IAP:收到`paymentQueueRestoreCompletedTransactionsFinished:`未完成交易的callback
有时候我得到这个callback
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
甚至在我收到之前
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
我甚至没有说finishTransaction:
我发现这超级怪物。 我所有这一次都假设paymentQueueRestoreCompletedTransactionsFinished:
不会触发之前,我已经标记每个未完成的交易完成。
这是预期的行为?
这是我在文档中find的
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue Description
告诉观察者支付队列已经完成发送恢复的事务。 在所有可恢复事务已经被支付队列处理之后调用该方法。 你的应用程序不需要在这个方法中做任何事情。
我不确定这是什么意思。
我发现头文件本身在这个部分是最清楚的。
@interface SKPaymentQueue : NSObject ... // Array of unfinished SKPaymentTransactions. Only valid while the queue has observers. Updated asynchronously. @property(nonatomic, readonly) NSArray *transactions; @end @protocol SKPaymentTransactionObserver // Sent when all transactions from the user's purchase history have successfully been added back to the queue. - (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue ... @end
这两个结合在一起使得它毫不含糊。 一旦StoreKit
将所有交易添加到SKPaymentQueue
paymentQueueRestoreCompletedTransactionsFinished
被触发。 -[SKPaymentQueue transactions]
只有一个未完成的交易清单。
我认为这个文件可能更清楚。