是否在应用范围内删除所有iAds



我添加了应用内购买,以删除iOS应用程序的iAds。

一旦购买了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
}

但广告仍然在播放。

有更好的方法吗?

当您检查用户是否购买了IAP以删除此行if let showAds = defaults.dataForKey("remove_adverts")中的广告时,您正在检查dataForKey,而您应该检查objectForKey,因为您在设置default值时使用了setObject。或者,您可以使用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")
}

最新更新