2015-06-18 12 views
5

Questo è il codice che sto usando:Nascondere iAd ADBannerView a Swift quando annuncio non riesce a caricare - nessun delegato o delegato non implementano didFailToReceiveAdWithError

var bannerView = ADBannerView() 
self.canDisplayBannerAds = true 

//show ad banner if an ad loads 
func bannerViewDidLoadAd(banner: ADBannerView!) 
{bannerView.hidden = false} 

//hide ad banner if the ad fails to load 
func bannerViewFailsToLoadAd(banner: ADBannerView!,didFailToReceiveAdWithError error: NSError!) 
{bannerView.hidden = true 
println("failed to receive ad")} 

Quando ho impostato l'iAd tasso di riempimento a 0% non viene stampata e ottengo questo output dalla console:

ADBannerView: Unhandled error (no delegate or delegate does not implement didFailToReceiveAdWithError:): Error Domain=ADErrorDomain Code=5 "The operation couldn’t be completed. Banner view is visible but does not have content" UserInfo=0x7fd3fd3335e0 {ADInternalErrorCode=5, NSLocalizedFailureReason=Banner view is visible but does not have content, ADInternalErrorDomain=ADErrorDomain}

risposta

4

metodi delegato saranno non essere chiamati quando si utilizza self.canDisplayBannerAds = true. È necessario creare uno ADBannerView e impostare il proprio delegate per i metodi delegati da chiamare, ad esempio bannerView.delegate = self.

self.canDisplayBannerAds = true è un senza problemi modo di implementare i banner iAd. Creerà un ADBannerView per te, lo visualizzerà se riceve un annuncio e lo nasconde se non riceve un annuncio. Non è necessario implementare metodi delegati quando si implementa il banner iAd in questo modo.

in modo da avere due opzioni, rimuovere var bannerView = ADBannerView() e utilizzare il banner iAd che self.canDisplayBannerAds = true fornisce, o rimuovere self.canDisplayBannerAds = true e finire attuare il proprio ADBannerView.

Se si decide di implementare il proprio ADBannerView controllare la risposta here, ignorare l'implementazione di AdMob.

+0

@Daniel_Storm Ok. Solo per capire correttamente, puoi confermare se utilizzo solo self.canDisplayBannerAds = true la sezione banner si nasconderebbe se non si caricava? – dwinnbrown

+0

@dwinnbrown Sì, quando si utilizza 'self.canDisplayBannerAds = true' se il banner non è in grado di ricevere un annuncio dalla rete iAd, si sposterà dallo schermo. Imposta la velocità di riempimento al 50% nelle impostazioni del dispositivo e guarda il display 'ADBannerView' e nascondi mentre riceve e non riesce a ricevere annunci. –

+0

L'ho provato, ma mi rimane un rettangolo bianco che appena toccato evidenzia solo il grigio – dwinnbrown

Problemi correlati