我已添加应用内购买以移除iOS应用的iAd。
一旦购买了removeAds产品,我就把它放在逻辑中(这肯定会触发):
func removeAds() {
defaults.setObject("True", forKey: "remove_adverts")
self.canDisplayBannerAds = false
self.removeAdButton.enabled = false
println("removed")
}
我已经把它放在每个控制器的顶部来处理它。
if let showAds = defaults.dataForKey("remove_adverts") {
self.canDisplayBannerAds = false
self.removeAdButton.enabled = false
println("Ads shouldn't show")
} else {
self.canDisplayBannerAds = true
}
但广告仍然显示。
有更好的方法吗?
答案 0 :(得分:1)
当您检查用户是否已购买IAP以删除此行dataForKey
中的广告时,如果您要检查objectForKey
,则会检查setObject
,因为您在设置default
值时使用setBool
。或者,您可以使用func removeAds() {
defaults.setBool(true, forKey: "removeAdsPurchased")
self.canDisplayBannerAds = false
println("iAd removed and default value set")
defaults.synchronize()
}
,因此您的代码看起来像这样:
let showAds = defaults.boolForKey("removeAdsPurchased")
if (showAds) {
// User purchsed IAP
// Lets remove ads
self.canDisplayBannerAds = false
println("iAd removed")
} else {
// IAP not purchased
// Lets show some ads
self.canDisplayBannerAds = true
println("Showing iAd")
}
和
"[{"message":"Valid user!","status":true}]"