如何在整个应用程序中继续进行应用内购买? (从多个视图中移除广告)

我已经编写了应用程序内购买的代码来删除广告,它的工作原理完美无瑕,除了它只适用于我从中删除广告的视图控制器。 我希望它贯穿整个应用程序。 我该怎么做?

更好的理解 :

我在我的应用程序中的几个视图控制器上有广告。 我有一个信息视图控制器,您可以购买删除广告。 事情是:它不会继续到我的其他意见,就好像我回到菜单视图控制器。 另外,当我回到“信息”视图时,它仍然有广告,直到我从购买恢复。 我不希望用户不断地恢复购买。 如何使这个工作?

正如评论中提到的@ user523234,你应该使用一个NSUserDefault来存储一个对应于你购买IAP的值。

在这个例子中,我们使用NSUserDefaults来检查一个关键字removeAds是true还是false, YESNOif语句将始终为真,直到您将您的密钥设置为YES 。 有关NSUserDefaults更多信息,请参阅NSUserDefaults类参考 。

 // Create this globally NSUserDefaults *defaults; // Setup your NSUserDefaults in your viewDidLoad for example defaults = [NSUserDefaults standardUserDefaults]; // Check If IAP Has Been Purchased if (! [defaults boolForKey:@"removeAds"]) { // NOT purchased } // Upon the successful purchase of your IAP you set the key to YES [defaults setBool:YES forKey:@"removeAds"]; [[NSUserDefaults standardUserDefaults] synchronize]; // Save your changes 

Daniel Storm的回答是正确的。 下面是Swift的等价物:

 let defaults = NSUserDefaults.standardUserDefaults() if !defaults.boolForKey("removeAds") { // Not Purchased. } // Upon the successful purchase of your IAP, you set the key to true. defaults.setBool(true, forKey: "removeAds") // Save your changes. NSUserDefaults.standardUserDefaults().synchronize() 

我会build议接触Objective-C的语法,以便将来可以自己翻译这样的东西。 阿米特相当简单。 马克丹尼尔的答案是正确的。