删除所有 iAds 应用程序?

Remove all iAds app wide?

我已添加应用内购买以移除我的 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
}

但广告仍然显示。

有更好的方法吗?

当您检查用户是否购买了 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")
    }