弹出广告有效,但不是在我实施应用内购买后将其删除?
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!!!")
}
}
当我不包含应用内购买时,测试广告效果很好。我单击该单元格,它会将我带到下一个视图控制器,然后弹出广告。但是,当我包含应用内购买时,即使用户没有付费删除广告,广告也不会显示。
广告使用此功能显示:
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!!!")
}
}