これはこれまでで最もばかげた質問のように思えますが、Apple のすべてのドキュメントと役に立たないオンライン チュートリアルに目を通した後でも、iAds
自分のアプリケーションに適切に実装する方法がわかりません。したがって、私のアプリはテーブル ビュー コントローラーから始まり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
(明らかに)ロードされませんが、非表示にもならないことです。そのため、画面の上部に大きな白い長方形が残っています。それ以外の場合、接続が利用可能な場合、広告は正常に機能します。誰にもアイデアはありますか?また、無限ループを追加して、違いがあるかどうかを確認しました。それらは完全に意図的でした笑。