這似乎是有史以來最愚蠢的問題,但在涉及所有Apple的文檔和無用的在線教程後,我仍然無法弄清楚如何在我的應用程序中正確實施iAds
。所以,我的應用程序從桌面視圖控制器開始,我在導航欄下方和桌面上方有一個iAd
對象。現在iAd在加載失敗時不會隱藏?
,在我的代碼:(我也有加入iAd的框架)
#import <UIKit/UIKit.h>
#import <iAd/iAd.h>
@interface MasterTableViewController : UITableViewController <ADBannerViewDelegate>
{
IBOutlet ADBannerView *iAd;
}
@property(nonatomic, readonly, getter=isBannerLoaded) BOOL bannerLoaded;
@end
然後在.m文件現在
#import "MasterTableViewController.h"
@interface MasterTableViewController()
@end
@implementation MasterTableViewController
@synthesize bannerLoaded;
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave
{
if (!willLeave)
{
// nothing in this case thanks to ARC
}
return YES;
}
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
iAd.hidden = NO;
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
iAd.hidden = YES;
}
- (void)viewDidLoad
{
[super viewDidLoad];
for (int i = 0; i > 0; i++)
{
if (bannerLoaded)
{
iAd.hidden = NO;
}
else
{
iAd.hidden = YES;
}
}
}
,問題是,當我測試應用程序沒有互聯網連接iAd
不加載(顯然),但它也不隱藏。所以,在屏幕的頂部,我留下了一個巨大的白色矩形。否則,當連接可用時,廣告可以正常工作。有沒有人有任何想法?此外 - 我只是添加了無盡的循環,看看他們是否有所作爲,這些都是完全有目的的大聲笑。
同樣的問題:(當我從所有數據斷開連接並測試應用程序時,我仍然會看到白色矩形。 – user1751797
實際上,當沒有互聯網連接時,我不認爲'bannerView:didFailToReceiveAdWithError:'會被調用。您需要實現一些其他方法來處理互聯網連接檢查。請看Apple提供的'Reachability'庫:http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro。 html – Yaman
嗯,我花了大約一個小時左右的時間尋找答案,我想我已經提出了一個解決方案。我不相信可達性類涉及到,但我不能肯定地說:P所以,我在iOS模擬器上做了一次嘗試,結果有很大的不同。它給我錯誤說我的橫幅沒有代表。所以,在ViewDidLoad中我做了:iAd.delegate = self;並重新運行它,它似乎按預期工作。然後我在我的iPhone上測試了它,幾分鐘後它按預期工作。我認爲iPhone上的測試讓它變得混亂起來。感謝你的幫助! – user1751797