Spi*_*iri 4 sandbox objective-c in-app-purchase ios
我正在使用测试用户(在沙箱中)测试 IAP,我有一个实现 SKPaymentTransactionObserver 协议的类,当用户选择某个表视图单元格时,我启动付款:
SKPayment *payment = [SKPayment paymentWithProductIdentifier:productIdentifier];
[[SKPaymentQueue defaultQueue] addPayment:payment];
Run Code Online (Sandbox Code Playgroud)
这只完成一次,我已经检查过:代码被调用一次。问题是“- (void) paymentQueue:(SKPaymentQueue *)queue UpdatedTransactions:(NSArray *)transactions”有时会被多次调用,我不明白为什么。这种情况并不总是发生,但它不应该发生。
有没有人在沙箱测试时遇到过这种行为(如果在真实场景中发生这种情况将是一个大问题)?
我通常“分配”我的委托,但这次保留了处理所有事务处理的类的委托。委托(视图控制器)和应用内购买类都被泄露。因此,每次我呈现视图控制器时,都会创建另一个实例并设置另一个委托。处理交易时,应用内购买类免费漫游的实例数量与视图呈现的次数一样多。所以,这不是 IAP 问题,而是注意力和内存管理的问题。