Ios 配置iAD后设备上的应用程序崩溃,但不在模拟器上

Ios 配置iAD后设备上的应用程序崩溃,但不在模拟器上,ios,cocos2d-iphone,ios6,iad,Ios,Cocos2d Iphone,Ios6,Iad,我正在cocos2d上创建一个应用程序。 我配置了iAd,但我不知道我的应用程序在设备上崩溃,但当我在模拟器上运行应用程序时,它工作正常 错误: [ADBannerView initWithAdType:]: unrecognized selector sent to instance 代码: 我不知道你为什么要用这种方式,但以下是苹果文档中提到的一种方式: ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectZ

我正在cocos2d上创建一个应用程序。 我配置了iAd,但我不知道我的应用程序在设备上崩溃,但当我在模拟器上运行应用程序时,它工作正常

错误:

[ADBannerView initWithAdType:]: unrecognized selector sent to instance  
代码:


我不知道你为什么要用这种方式,但以下是苹果文档中提到的一种方式:

ADBannerView *adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
adView.delegate = self;
[[[CCDirector sharedDirector] view] addSubview:adView];

initWithAdType需要iOS 6.0或更高版本。如果您在iOS 5.x设备上进行测试,您将看到崩溃。在旧设备上使用初始化AdBannerView(例如initWithFrame)的旧方法

这是initWithAdType的iOS 6.0声明:

- (id)initWithAdType:(ADAdType)type __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_6_0);
要支持旧的iOS5创建iAd横幅的方法,您需要添加:

#import <iAd/ADBannerView_Deprecated.h>
#import <iAd/ADBannerView_Deprecated.h>
ADBannerView *iAdView = nil;
if ([[ADBannerView class] instancesRespondToSelector:@selector(initWithAdType:)]) { // iOS 6.0
    iAdView = [[[ADBannerView alloc] initWithAdType:ADAdTypeBanner] autorelease];
} else { // iOS 4.x-5.x
    iAdView = [[[ADBannerView alloc] initWithFrame:CGRectMake(0, 0, appleWidth_, appleHeight_)] autorelease];
    iAdView.currentContentSizeIdentifier = isLandscape_ ? ADBannerContentSizeIdentifierLandscape : ADBannerContentSizeIdentifierPortrait;
}