Всплывающее объявление работает, но я не реализую покупку в приложении, чтобы удалить его? - PullRequest
0 голосов
/ 12 февраля 2019

Тестовая реклама работает нормально, когда я не включаю покупку в приложение.Я нажимаю на ячейку, она переходит к следующему контроллеру представления, и появляется объявление.Однако, когда я включаю покупки в приложении, объявление не показывается, даже если пользователь не заплатил за удаление рекламы.

Объявление показывается с этой функцией:

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!!!")
        }

}

1 Ответ

0 голосов
/ 12 февраля 2019

Ваша проблема в том, что изначально в UserDefaults не будет значения для платежа .Это приведет к провалу внешнего оператора if, что приведет к отсутствию рекламы.

Вы можете упростить свой код с помощью bool(forKey:) - Это вернет 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!!!")
    }

}
...