我无法实现ADBannerView及其委托协议.
我在我的视图类中实现了以下代码(也使视图符合ADBannerViewDelegate协议):
//add iAds
ADBannerView *adView = [[ADBannerView alloc] initWithFrame: CGRectMake(0, 318, 320, 50)];
adView.requiredContentSizeIdentifiers = [NSSet setWithObjects: ADBannerContentSizeIdentifierPortrait, ADBannerContentSizeIdentifierLandscape, nil];
adView.delegate = self;
//adView.delegate = ADBannerViewDelegate;
[self.view addSubview: adView];
Run Code Online (Sandbox Code Playgroud)
然后我为ADBannerViewDelegate创建了一个类,其中包含以下.m
//
// ADBannerViewDelegate.m
//
#import "ADBannerViewDelegate.h"
@implementation ADBannerViewDelegate
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
NSLog(@"bannerview did not receive any banner due to %@", error);}
- (void)bannerViewActionDidFinish:(ADBannerView *)banner{NSLog(@"bannerview was selected");}
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave{return willLeave;}
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {NSLog(@"banner was loaded");}
@end
Run Code Online (Sandbox Code Playgroud)
最终会显示横幅,但控制台会继续抛出以下类型的错误:
2011-02-27 15:00:54.108 app[31639:207] 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=0x6356a40 {ADInternalErrorCode=5, NSLocalizedFailureReason=Banner view is visible but does not have content}
Run Code Online (Sandbox Code Playgroud)
并且委托函数没有做任何事情,所以根本没有NSLog.显然没有抓住错误.
我很难过.我想我在视图和委托中的Adbanner视图调用的链接中遗漏了一些东西.不知道该怎么做或出了什么问题.
有帮助吗?提前致谢.
贾森
你之所以告诉AdBannerView你是它的委托,但你从来没有把它放在你的实现文件中.您的实现文件应如下所示(注意该行@implmentation
):
//
// ADBannerViewDelegate.m
//
#import "ADBannerViewDelegate.h"
@implementation ADBannerViewDelegate<ADBannerViewDelegate>
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
NSLog(@"bannerview did not receive any banner due to %@", error);}
- (void)bannerViewActionDidFinish:(ADBannerView *)banner{NSLog(@"bannerview was selected");}
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave{return willLeave;}
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {NSLog(@"banner was loaded");}
@end
Run Code Online (Sandbox Code Playgroud)
而且你也不应该把你的班级命名为ADBannerViewDelegate.您的类应该是ADBannerView的委托(响应它),但不能以它的名字命名.
归档时间: |
|
查看次数: |
18297 次 |
最近记录: |