我已经在我的应用程序中实现了iAd,但是当我在模拟器上运行应用程序时,我会遇到非常奇怪的错误。它们往往会有所不同,但最常见的错误是Error in Loading Banner! Error Domain=ADErrorDomain Code=4 "The operation couldn’t be completed. Application has iAd Network configuration error" UserInfo=0xa368250 {ADInternalErrorCode=4, ADInternalErrorDomain=ADErrorDomain, NSLocalizedFailureReason=Application has iAd Network configuration error}
最近:
Error Domain=ADErrorDomain Code=5 "The operation couldn’t be completed. Banner view is visible but does not have content" UserInfo=0xa3a0c40 {ADInternalErrorCode=5, ADInternalErrorDomain=ADErrorDomain, NSLocalizedFailureReason=Banner view is visible but does not have content}
我无法弄清楚为什么会这样。我仔细检查以确保模拟器连接到wifi,并且时钟也正确设置。这就是我实施iAds的方式:
.h中的相关代码:
#import "iAd/ADBannerView.h"
@interface myViewController : UIViewController <ADBannerViewDelegate> {
ADBannerView *adView;
}
@property (nonatomic, retain) IBOutlet ADBannerView *adView;
我的.m中的所有相关代码:
@synthesize adView;
...
- (void)viewDidLoad {
adView.delegate = self;
adView.hidden = YES;
[super viewDidLoad];
}
...
-(void)bannerView:(ADBannerView *)banner
didFailToReceiveAdWithError:(NSError *)error{
NSLog(@"Error in Loading Banner! %@", error);
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
NSLog(@"iAd banner Loaded Successfully!");
}
-(void)bannerViewWillLoadAd:(ADBannerView *)banner{
NSLog(@"iAd Banner will load!");
}
-(void)bannerViewActionDidFinish:(ADBannerView *)banner{
NSLog(@"iAd Banner did finish");
}
然后我将AdBannerView拖到视图上并连接视图控制器中的插座。 这是正确的方法吗?如果是这样,可能导致此错误的原因是什么?该应用程序不会崩溃...广告根本不会出现。据说这是一个常见的问题,但我永远无法追查修复。
我已为我的配置文件启用了推送通知,并尝试查找iAds的部分但不能。这可能是问题吗?
我还确保我使用的AdBannerView正好是320x50。今天早上我用相同的代码再次尝试,这是同样的问题。我是否应该继续并假设它是Apple / iAd问题,并假设上述内容正确实施后提交我的应用程序?
答案 0 :(得分:2)
.h文件
#import <iAd/iAd.h>
@interface MainViewController : CDVViewController <ADBannerViewDelegate>
@end
的.m
#pragma mark iAd Delegate Methods
- (void) bannerViewDidLoadAd:(ADBannerView *)banner {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[banner setAlpha:1];
[UIView commitAnimations];
}
- (void) bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[banner setAlpha:0];
[UIView commitAnimations];
}
确保它位于你的mainviewcontroller中的@end之前
最后只需将adbanner拖放到故事板上,然后按住Ctrl键并从横幅拖动到占位符下的文件所有者,这是金框图标,然后点击代理。
答案 1 :(得分:1)
iAd网络一定存在问题。一天后测试完全相同的代码,它现在在设备上神奇地工作。