在我的应用中,我有一个IAP可以从屏幕底部删除iAd横幅。我通过以下代码实现了这一点。
func removeAds() {
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setBool(true, forKey: "productID is here")
purchaseButton.alpha = 0.0
self.canDisplayBannerAds = false
print("iAd removed and default value set")
defaults.synchronize()
}
}
我的其他视图控制器中也有此代码
let defaults = NSUserDefaults.standardUserDefaults()
let showAds = defaults.boolForKey("productID is here")
if (showAds) {
// User purchsed IAP
// Lets remove ads
self.canDisplayBannerAds = false
print("iAd removed")
} else {
// IAP not purchased
// Lets show some ads
self.canDisplayBannerAds = true
print("Showing iAd")
}
当我与测试用户一起购买时,它会成功并从该视图控制器中删除广告。但是,只要我离开我购买的视图,然后返回,广告就会重新出现。我购买的是非消费类型。
我的问题是如何制作这个永久性的
感谢。
答案 0 :(得分:2)
你命名bool的方式令人困惑,你应该称之为
let removedAds = ....
而不是
let showAds = ...
如果您在启动时在viewControllers中调用此代码,我不明白为什么它无法正常工作。
你确定你没有使用本地默认的密钥输入错误吗? 你应该使用结构
struct Key {
static let key = "Key1"
}
或
struct ProductID {
static let removedAds = "Your removed ads product ID"
}
如果您还没有这样做以避免拼写错误。
还有另一行
self.canDisplayBannerAds = true
你忘了删除?
也许发布一些视图控制器的代码,这样我们就可以更多地了解发生的事情。
作为旁注,您无需致电
defaults.synchronize()
自iOS 8以来,所以你应该删除那一行。