弹出广告有效,但不是在我实施应用内购买后将其删除?

Pop up ad works, but not once I implement in-app purchase to remove it?

当我不包含应用内购买时,测试广告效果很好。我单击该单元格,它会将我带到下一个视图控制器,然后弹出广告。但是,当我包含应用内购买时,即使用户没有付费删除广告,广告也不会显示。

广告使用此功能显示:

func showAd() {

   self.interstitial = createInterstitialAd()

}

但是当我添加这个时,即使用户没有付费删除广告,广告也不会显示。

func showAd() {

    if let purchased = UserDefaults.standard.value(forKey: "payment") as? Bool{
        if purchased == true{
            interstitial = nil
            print("there is no ad!!!!")
        }else{
            self.interstitial = createInterstitialAd()
            print("there is an ad!!!")
        }

}

您的问题是,最初 UserDefaults 中的 payment 键没有值。这将导致外部 if 语句失败,导致没有广告。

您可以使用 bool(forKey:) 简化您的代码 - 这将 return false UserDefaults 而不是 nil 中不存在密钥的地方:

func showAd() {

    if UserDefaults.standard.bool(forKey: "payment") {
        interstitial = nil
        print("there is no ad!!!!")
    } else {
        self.interstitial = createInterstitialAd()
        print("there is an ad!!!")
    }

}