Ios iAd横幅导致EXC\u访问错误
很久以前,有一个iAd的旗帜谁工作得很好。有一天,它决定在没有明显原因的情况下,每当它被点击时,都会导致EXC_BAD_访问 所以我正在开发一款iOS小游戏,在屏幕顶部有一个iAd横幅。当调用Ios iAd横幅导致EXC\u访问错误,ios,objective-c,exc-bad-access,instruments,iad,Ios,Objective C,Exc Bad Access,Instruments,Iad,很久以前,有一个iAd的旗帜谁工作得很好。有一天,它决定在没有明显原因的情况下,每当它被点击时,都会导致EXC_BAD_访问 所以我正在开发一款iOS小游戏,在屏幕顶部有一个iAd横幅。当调用bannerviewactionshouldbeagin:willLeaveApplication:时,我发送一个NSNotification暂停游戏,然后返回TRUE。 它过去一直按预期工作,直到2天前点击横幅开始导致EXC\u BAD\u访问 因此,与横幅相关的相关代码为: 标题: @interface
bannerviewactionshouldbeagin:willLeaveApplication:
时,我发送一个NSNotification暂停游戏,然后返回TRUE
。
它过去一直按预期工作,直到2天前点击横幅开始导致EXC\u BAD\u访问
因此,与横幅相关的相关代码为:
标题:
@interface JAGameBackground : UIView <ADBannerViewDelegate>
{
...
ADBannerView *adBannerView;
}
+(id)gameView
{
JAGameBackground *aBackground = [[JAGameBackground alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height + [UIScreen mainScreen].bounds.size.width)];
aBackground.adBannerView = [[ADBannerView alloc] initWithFrame:CGRectZero];
aBackground.adBannerView.delegate = aBackground;
[aBackground addSubview:aBackground.adBannerView];
...
return aBackground;
}
-(BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave
{
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_PAUSE object:nil];
return TRUE;
}
并用仪器运行它:
关于如何给这个问题一个童话般的结局,有什么想法吗?原来我犯了一个错误,没有在主线程上加载iAd横幅(以及其他UIKit对象…gameView中的第一行看起来可疑。看起来你在第二次调用JAGameBackground的初始值设定项。第二次?我的理解是,它返回一个初始化的实例您应该创建一个类方法并使用[[JAGameBackground alloc]initWithFrame:…]创建实例好的,我已经更新了代码。
EXC\u BAD\u ACCESS
仍然很大。您的项目是否使用ARC?您知道发生此错误的代码行吗?(您可以捕获所有异常以执行此操作)