SKPaymentQueue.defaultQueue()。removeTransactionObserver(self)删除和添加

时间:2015-07-18 10:02:26

标签: ios swift in-app-purchase deinit

是的,所以我在应用程序商店中有一个名为misshapen的游戏,在我的游戏中,我在应用程序购买中工作正常但是我发现了一个错误,如果有人按下应用内购买按钮,那么会导致游戏崩溃然后转到主菜单(IAP在选项屏幕上)如果用户然后返回选项并点击IAP游戏崩溃,因为已经有一个事务观察者。

要修复我的问题,我需要的代码行是

    SKPaymentQueue.defaultQueue().removeTransactionObserver(self)

但是我不知道在哪里调用它,因为如果它被调用错误那么它会向用户提供苹果登录屏幕的所有时间。我的解决方法是在

中调用它
 deinit {    
        if SKPaymentQueue.canMakePayments() {
            SKPaymentQueue.defaultQueue().removeTransactionObserver(self)
        }
}

这可以解决我的问题,但是当用户返回菜单时,用户会获得苹果登录屏幕,我不想要这个!请帮帮我谢谢!! :)

1 个答案:

答案 0 :(得分:0)

在关闭Purchase ViewController

之前添加此项
SKPaymentQueue.defaultQueue().removeTransactionObserver(self)