我的应用程序有一个包含 4 个 View Controller 的选项卡栏。第三个 View Controller 包含“商店应用内购买”。在此 Controller 中,我使用一个管理应用内购买(产品请求、购买、交易等)的对象,该对象允许我获取并显示价格说明 ecc。
问题是:如果我在请求启动时更改选项卡,应用程序有时会崩溃,但并非总是如此。
我必须在 viewDidDisappear 中取消请求吗? [productsRequest cancel] 此代码崩溃。
最佳答案
我也有同样的问题。 要修复它,请取消请求,一切都会好起来的。
var request: SKProductsRequest! //global to cancel when disappear
//request products when you want (viewDidLoad for example)
request = SKProductsRequest(productIdentifiers: productID as! Set<String>)
request.delegate = self
request.start()
当 View Controller 消失时:
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
request.delegate = nil;
request.cancel()
SKPaymentQueue.defaultQueue().removeTransactionObserver(self)
}
关于ios - 应用内购买 : Crash when view disappear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7620901/