Iphone 如何实现AdBannerview和AdBannerview委托
我在实现ADBannerView及其代理协议时遇到问题 我在视图类中实现了以下代码(还使视图符合ADBannerViewDelegate协议): 然后我为ADBannerViewDelegate创建了一个类,其中包含以下.mIphone 如何实现AdBannerview和AdBannerview委托,iphone,cocoa,iad,Iphone,Cocoa,Iad,我在实现ADBannerView及其代理协议时遇到问题 我在视图类中实现了以下代码(还使视图符合ADBannerViewDelegate协议): 然后我为ADBannerViewDelegate创建了一个类,其中包含以下.m // // ADBannerViewDelegate.m // #import "ADBannerViewDelegate.h" @implementation ADBannerViewDelegate - (void)bannerView:(ADBannerVie
//
// 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
横幅最终显示,但控制台不断抛出以下类型的错误:
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}
委托函数没有做任何事情,因此根本没有NSLog。显然没有捕捉到错误
我被难住了。我想我在视图和委托中Adbanner视图调用的链接中缺少了一些东西。不知道怎么做,也不知道出了什么问题
有什么帮助吗?提前谢谢
Jason我使用本教程成功地将IAD集成到我的应用程序中:
http://www.raywenderlich.com/1371/how-to-integrate-iad-into-your-iphone-app
可能也会对您有所帮助。如果您不尝试实现名为
ADBannerViewDelegate
的类,则将这些方法放在视图类的实现中
(如果您实际上将视图类命名为“AdBannerViewDeleteGate”,请不要这样做。这会让人困惑。)您告诉AdBannerView您是它的委托人,但从未将其放入实现文件中。您的实现文件应该如下所示(注意带有
@implementation
的行):
//
//ADBannerViewDelegate.m
//
#导入“ADBannerViewDelegate.h”
@ADBannerViewDelegate的实现
-(无效)bannerView:(ADBannerView*)banner接收失败,错误为:(N错误*)错误{
NSLog(@“bannerview由于%@”未收到任何横幅,错误);}
-(void)bannerViewActionDidFinish:(ADBannerView*)banner{NSLog(@“bannerview已被选中”);}
-(BOOL)banner视图操作应该开始:(adbanner视图*)banner willLeave应用程序:(BOOL)willLeave{return willLeave;}
-(void)bannerViewIDLoadAD:(ADBannerView*)banner{NSLog(@“banner已加载”);}
@结束
而且你不应该给你的班级命名ADBannerViewDelegate。你的班级应该是ADBannerView的代表(回应),但不能以它的名字命名。对我来说,它是目标和设备,我在4.3模拟器和iPad2上运行它,但应用程序是针对iphone 5.1的,当我更改目标时一切都进行得很顺利。你可以使用这个链接,它非常有用
thx。我想做的是创建一个泛型类,它充当所有函数的委托。原因是我有一堆不同的视图,它们以我显示的方式调用Adbanner,不希望所有视图控制器都使用相同的代码代码>,您应该创建泛型类的实例并将其指定为委托。在这种情况下,您的视图不需要与
AdBannerViewDelegate
协议冲突。+1在ipad模拟器中运行iphone应用程序时,我在设置ADBannerView代理时立即收到了失败的接收数据,并且从未收到过另一个代理调用。在iphone模拟器上运行它(或将应用程序目标更改为universal),代理仅在将ADBannerView添加为子视图后才被调用,此后每隔30秒调用一次代理。应该注意方法:bannerViewActionShouldBegin。逻辑可以自定义,但通常最好返回YES。应用程序中提供了许多广告(因此willLeave通常为否),但基于此值返回将阻止广告完全提供(如果没有),因此根据AdBannerViewDelegate协议参考()减少可赚取收入。我有点困惑,is不是接口,它需要符合协议而不是实现。当我在实现中编写ADViewBannerDelete时,我正在测试项目中尝试这个方法,xcode抛出了这个错误@实现声明不能是协议限定的
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}
//
// 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