ios - 应用内购买 : Crash when view disappear

标签 ios objective-c in-app-purchase

我的应用程序有一个包含 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/

相关文章:

ios - 如何禁用 UITableViewcell iOS 中特定部分的 uitableViewCell 选择

objective-c - Sprite Kit 按 Y 转动节点

objective-c - 什么是正确的应用内购买产品类型?

ios - TestFlight 无法更新分发配置文件

ios - 未安装分发证书/私钥

android - Firebase 远程配置 : what is the definition of an "app instance" regarding percentile conditions?

ios - 使用 URLRequestConvertible 在单元测试中链接错误

ios - 如何找到崩溃发生的位置 - ios

ios - 您可以使用推送通知和应用内购买吗?

iphone - SKPaymentQueue 崩溃于 'NotifyObserverAboutChanges'