Iphone iAd出现在模拟器中,但不在设备上

Iphone iAd出现在模拟器中,但不在设备上,iphone,objective-c,cocoa-touch,interface-builder,iad,Iphone,Objective C,Cocoa Touch,Interface Builder,Iad,当我运行我的应用程序时,我可以在模拟器中看到我的iAd,其中预先填充了“测试广告” 但是,当我在我的设备上运行应用程序时,iAd区域是空白的,没有预先填充的广告 为什么会这样 我的iAd位于UITableViewCell中: #import "iAdCell.h" @implementation iAdCell @synthesize adView; - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSStr

当我运行我的应用程序时,我可以在模拟器中看到我的iAd,其中预先填充了“测试广告”

但是,当我在我的设备上运行应用程序时,iAd区域是空白的,没有预先填充的广告

为什么会这样

我的iAd位于UITableViewCell中:

#import "iAdCell.h"


@implementation iAdCell
@synthesize adView;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) {
        adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
        adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifier320x50];
        adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
        adView.delegate=self;
        [self.contentView addSubview:adView];
    }
    return self;
}


- (void)setSelected:(BOOL)selected animated:(BOOL)animated {

    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}


- (void)dealloc {
    [adView release];
    [super dealloc];
}


@end

提问者添加更多信息后编辑:

如果iAd位于表格单元格内,苹果将拒绝您的应用程序。IAD需要在页面上处于静态位置,而不是任何类型的滚动视图(包括表视图)。这是因为iAd是通过印象和点击来支付的,所以在表格视图单元格中放置iAd会导致它在屏幕上和屏幕上滚动时被重新加载,这可能会多次。这看起来像是“点击欺诈”或类似的行为。苹果不会允许这样做


可能是因为你的请求失败了。在请求失败时发送的failure delegate消息中放置断点或一些日志记录,您将能够看到它是否被调用

iAd请求可能会因多种原因而失败,包括您所在国家的iAd不可用、没有足够的库存来满足请求、广告已经在本次会议上显示过等


有可能在模拟器上显示的是,因为模拟器对其位置没有任何概念(例如,地图总是显示您的位置,即苹果在库比蒂诺的总部)。

也有同样的问题,解决问题的方法是从您的设备上删除应用程序,然后从XCode重新安装。

提供更多信息。根据苹果的建议,当出现错误时,你是否隐藏广告?如果是,您是否有网络连接?即使这样,也可能需要几秒钟的时间,我甚至不得不等待更长的时间才能看到测试广告。