Проблемы с ADBannerView

У меня есть этот код на всех моих viewcontroller страницах для управления моим AdBanner на нескольких страницах. Он работает правильно в последней версии моего приложения, но по какой-то причине в этом обновлении, над которым я работаю, я не думаю, что мое приложение вызывает функции bannerViewDidLoadAd или didFailToReceiveAdWithError. Также я получаю эту ошибку, когда я много меняю страницы. `

«ВНИМАНИЕ: в настоящее время существует более 10 экземпляров ADBannerView или ADInterstitialView. Это неправильное использование iAd API, в результате чего пострадает производительность рекламы. Это сообщение печатается только один раз».

` Я что-то упустил? Спасибо

// Ad controller

var UIiAd: ADBannerView = ADBannerView()
var screenHeight = UIScreen.mainScreen().bounds.height
var adBannerHeight: CGFloat = 50
@IBOutlet var constOne: NSLayoutConstraint!

func appdelegate() -> AppDelegate {
    return UIApplication.sharedApplication().delegate as! AppDelegate
}

override func viewWillDisappear(animated: Bool) {
    UIiAd.delegate = nil
    UIiAd.removeFromSuperview()
}

func bannerViewDidLoadAd(banner: ADBannerView!) {
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(1)
    UIiAd.alpha = 1
    adBannerHeight = 50
    UIView.commitAnimations()
    constOne.constant = 58
    print("ad loaded")
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(1)
    UIiAd.alpha = 0
    adBannerHeight = 0
    UIView.commitAnimations()
    constOne.constant = 8
    print("error")
}

override func viewWillAppear(animated: Bool) {
    UIiAd.delegate = self
    UIiAd = self.appdelegate().UIiAd
    UIiAd.frame = CGRectMake(0, screenHeight - adBannerHeight , 0, 0)
    self.view.addSubview(UIiAd)

}

// End of Ad Controller

person ElectricTiger    schedule 07.01.2016    source источник
comment
Так что я чувствую, что исправил проблему, но у меня есть сомнения. Я заменил весь свой код на 1 строку «self.canDisplayBannerAds = true». Кажется, это решение, но я не знаю, как оно реагирует. В симуляторе трудно сказать, загружает ли каждая страница новую рекламу или это общий баннер iAd. Кто-нибудь может просветить меня?   -  person ElectricTiger    schedule 02.02.2016


Ответы (1)


Попробуйте изменить этот код:

override func viewWillDisappear(animated: Bool) {
    UIiAd.delegate = nil
    UIiAd.removeFromSuperview()
}

To:

override func viewWillDisappear(animated: Bool) {
     UIiAd.removeFromSuperview()
     UIiAd.delegate = nil
}
person vien vu    schedule 28.01.2016
comment
Я просто получаю это сообщение. Nil не может быть присвоен типу «ADBannerView». - person ElectricTiger; 28.01.2016
comment
@ElectricTiger просто попробуйте удалить UIiAd = nil - person vien vu; 28.01.2016
comment
разницы нет к сожалению. Будет ли полезно, если я скажу вам, что у меня также есть этот код в AppDelegate.swift? переменная UIiAd: ADBannerView = ADBannerView() - person ElectricTiger; 28.01.2016