2012-09-04 87 views
10

我試圖在我的應用中獲得橫幅,但是由於我添加了橫幅,該應用無法啓動。iAd Banner無法正常工作

我得到一個錯誤說:

終止應用程序由於未捕獲的異常 'NSInvalidUnarchiveOperationException',原因是:

代碼在.h文件中 '命名ADBannerView無法實例化類':

#import <iAd/iAd.h> 

@interface FirstViewController : UIViewController <ADBannerViewDelegate> 
{ 
    ADBannerView *banner; 
} 
@property (nonatomic,assign) BOOL bannerIsVisible; 
@property (nonatomic,retain) IBOutlet ADBannerView *banner; 

.m文件中的代碼:

@synthesize banner, bannerIsVisible; 

-(void)bannerViewDidLoad: (ADBannerView *)abanner 
{ 
    if(!self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animatedAdBannerOn" context:NULL]; 
     banner.frame=CGRectOffset(banner.frame, 0.0, 50.0); 
     [UIView commitAnimations]; 
     self.bannerIsVisible=YES; 
    } 
} 
-(void)bannerView:(ADBannerView *)aBanner 
{ 
    if(!self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animatedAdBannerOff" context:NULL]; 
      banner.frame=CGRectOffset(banner.frame, 0.0, -320.0); 
     [UIView commitAnimations]; 
     self.bannerIsVisible=NO; 
    } 
} 

您認爲什麼錯誤?

回答

1

把這個代碼:

#import <iAd/iAd.h> 

@interface ViewController : UIViewController <ADBannerViewDelegate> { 
} 
@end 

.m文件:

@implementation ViewController 

-(void)bannerViewDidLoadAd:(ADBannerView *)banner { 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    [banner setAlpha:1]; 
    [UIView commitAnimations]; 
} 

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    [banner setAlpha:0]; 
    [UIView commitAnimations]; 
} 
@end 
19

您必須添加iAd.framework到您的項目。

+0

也做self.canDisplayBanners = YES; – user2277872

+0

不錯的例子:[31天的iOS:第29天 - 廣告與iAd](http://chrisrisner.com/31-Days-of-iOS--Day-29%E2%80%93Advertising-with-iAd) – leanne

+0

@lykant很好的回答,我回答了一個類似的問題,並扔了幾張照片,爲那些誰看看:http://stackoverflow.com/a/26172282/4018041 –