iAd“没有委托或委托未实现 didFailToReceiveAdWithError:”
Posted
技术标签:
【中文标题】iAd“没有委托或委托未实现 didFailToReceiveAdWithError:”【英文标题】:iAd "no delegate or delegate does not implement didFailToReceiveAdWithError:" 【发布时间】:2012-07-28 22:16:44 【问题描述】:我在禁用 wifi 的情况下运行我的应用程序,但调试器中总是出现空白和以下消息:
ADBannerView:未处理的错误(没有委托或委托未实现 didFailToReceiveAdWithError:):错误域=ADErrorDomain Code=5“操作无法完成。横幅视图可见但没有内容”UserInfo=0x9632d30 ADInternalErrorCode =5, NSLocalizedFailureReason=Banner 视图可见但没有内容
请帮我修复我的代码: .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;
【问题讨论】:
你有解决办法吗?我也面临同样的问题。给定委托虽然控制台这么说。 【参考方案1】:根据错误的委托部分。在您的 viewDidLoad(或您初始化的任何地方)方法中设置 banner.delegate = self;
【讨论】:
现在,当我使用有效连接运行时,横幅会完全隐藏,调试器会告诉我:“ADBannerView:警告横幅视图 (0xb259210) 有广告,但可能会被遮挡。这条消息是每个横幅视图仅打印一次。”但是,当我在没有连接的情况下运行时,它确实会正确地隐藏自己,没有任何问题。有什么想法吗? 您必须将横幅视图添加到视图中......像这样(再次在 viewdidload 中):[self.view addSubview:banner];
您的横幅是在显示器的顶部还是底部? (尝试验证您正在做的偏移量;动画完成后视图可能不可见)..您可以粘贴横幅视图的初始化代码及其初始帧吗?
我的应用程序也有同样的事情。 itunes.apple.com/in/app/ui-maker-design-mobile-app/… 。我已应用 iAds 的 Delegate 方法来显示何时加载第一个广告,直到那时我将 iAds 隐藏。我已经检查了所有委托方法...我在开发者证书中获得了广告,但在最终 Appstore 版本中没有...可能是什么原因??【参考方案2】:
对 ios 开发完全陌生,但我相信您需要在情节提要中设置 adBanner 视图委托。为此,请右键单击广告横幅并拖动到文件所有者。然后选择委托。这为我解决了这个问题:)。
【讨论】:
【参考方案3】:您可能需要在接口生成器 (IB) 中设置委托。否则,当视图加载时,没有分配委托,您将收到此错误消息。
【讨论】:
以上是关于iAd“没有委托或委托未实现 didFailToReceiveAdWithError:”的主要内容,如果未能解决你的问题,请参考以下文章