Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何实现AdBannerview和AdBannerview委托_Iphone_Cocoa_Iad - Fatal编程技术网

Iphone 如何实现AdBannerview和AdBannerview委托

Iphone 如何实现AdBannerview和AdBannerview委托,iphone,cocoa,iad,Iphone,Cocoa,Iad,我在实现ADBannerView及其代理协议时遇到问题 我在视图类中实现了以下代码(还使视图符合ADBannerViewDelegate协议): 然后我为ADBannerViewDelegate创建了一个类,其中包含以下.m // // ADBannerViewDelegate.m // #import "ADBannerViewDelegate.h" @implementation ADBannerViewDelegate - (void)bannerView:(ADBannerVie

我在实现ADBannerView及其代理协议时遇到问题

我在视图类中实现了以下代码(还使视图符合ADBannerViewDelegate协议):

然后我为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
横幅最终显示,但控制台不断抛出以下类型的错误:

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