iAd "no delegate or delegate does not implement didFailToReceiveAdWithError:"



我在禁用wifi的情况下运行我的应用程序,我总是在调试器中得到空白和以下消息:

ADBannerView:未处理的错误(没有委托或委托未实现didFailToReceiveAdWithError:):错误域=ADErrorDomain Code=5"操作无法完成。横幅视图可见但没有内容"UserInfo=0x9632d30{ADInternalErrorCode=5,NSLocalizedFailureReason=横幅视图可见,但没有内容}

请帮我修复代码:.h

#import <iAd/iAd.h>
@interface ViewController : UIViewController  <GKAchievementViewControllerDelegate, GameCenterManagerDelegate , ADBannerViewDelegate> {

//iAD
ADBannerView *banner;  
 }
//iAD
@property (nonatomic, assign) BOOL bannerIsVisible;
@property (nonatomic, retain) IBOutlet ADBannerView *banner;  

.m

@synthesize  banner , bannerIsVisible;
-(void)bannerViewDidLoadAd:(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 didFailToReceiveAdWithError:(NSError *)error {
if (!self.bannerIsVisible) {
    [UIView beginAnimations:@"animatedAdBannerOff" context:NULL];
    banner.frame = CGRectOffset(banner.frame, 0.0, -50.0);
    [UIView commitAnimations];
    self.bannerIsVisible = NO;
}
}

根据错误的委托部分。在您的视图DidLoad(或在任何初始化位置)中,方法集banner.delegate = self;

对iOS开发来说是全新的,但我认为您需要在故事板中设置adBanner视图代理。为此,右键单击广告横幅并拖动到文件所有者。然后选择代理。这为我解决了这个问题:)。

您可能需要在接口生成器(IB)中设置委托。否则,当加载视图时,没有指定代理,您将收到此错误消息。

最新更新