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]只有一个未完成的交易清单。

我认为这个文件可能更清楚。