【发布时间】:2015-05-31 05:17:47
【问题描述】:
如果我需要添加事务观察器,以及是否需要删除事务观察器,以及这一切在哪里和是什么,我都在苦苦挣扎......
我继承的代码包括带有观察者的应用委托... AppDelegate ->
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
SKPaymentQueue *paymentQueue = [self.injector getInstance:[SKPaymentQueue class]];
[paymentQueue addTransactionObserver:self.purchaseHelper];
}
我正在处理购买助手的恢复部分... 购买助手 ->
-(void) beginRestorePurchases:(BOOL)serverRestore {
self.serverRestore = serverRestore;
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}
-(void) paymentQueueRestoreCompletedTransactionsFinished : (SKPaymentQueue *) queue {
for (SKPaymentTransaction *transaction in queue.transactions) {
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
}
我目前关心的是恢复购买。 (我意识到我对代码的其他部分(购买部分)使用了依赖注入模式,所以它有所不同。我不确定这是否对我的问题也有影响。)
问题是我不知道是否应该添加另一个观察者进行恢复。如果我这样做了,我会在恢复时多次提示 iTunes 出现一些奇怪的行为。在 SO 帖子中,我看到一些提到删除观察者的内容。如果我在应用委托级别创建它,您什么时候会这样做?
也许我的SKPaymentQueue * paymentQueue 对象不是defaultQueue 对象????不知道……
【问题讨论】:
标签: ios objective-c in-app-purchase observers