我已经编写了应用内购买代码以删除广告,但它完美无瑕,但它只适用于我从中移除广告的视图控制器。我希望它能贯穿整个应用程序。我该怎么办?
更好地理解:
我的应用中有几个视图控制器上的广告。我有一个信息视图控制器,您可以在其中购买广告的删除。问题是:它不会延续到我的其他视图,就像我回到菜单视图控制器一样。此外,当我返回信息视图时,它仍然有广告,直到我从购买恢复。我不希望用户持续恢复购买。怎么让这个工作?
答案 0 :(得分:2)
正如评论中提到的@ user523234,您应该使用NSUserDefault
来存储与购买IAP相对应的值。
在此示例中,我们使用NSUserDefaults
来检查密钥removeAds
是真还是假,YES
或NO
。在您将密钥设置为if
之前,YES
语句将始终为真。有关NSUserDefaults
的更多信息,请参阅 NSUserDefaults Class Reference。
// 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
答案 1 :(得分:2)
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()
我建议您使用Objective-C语法,以便将来自己翻译。这很简单,阿米特。马克丹尼尔的回答是正确的。