Когда-то был знаменитый iAd Banner, который отлично работал. Однажды он решил вызвать EXC_BAD_ACCESS всякий раз, когда он прослушивался без видимых причин.iAd Баннер, вызывающий EXC_BAD_ACCESS
Итак, я работаю над маленькой игрой iOS, у которой есть значок iAd в верхней части экрана. Когда вызывается bannerViewActionShouldBegin: willLeaveApplication:
, я посылаю NSNotification для приостановки игры, затем возвращаю TRUE
. Он не привык работать, как и ожидалось, до 2 дней назад, когда коснувшись баннер начал вызывая EXC_BAD_ACCESS
Соответствующий код относящийся к заголовку, таким образом:
Заголовок:
@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;
}
И runni ng it with Instruments:
Любые идеи о том, как дать эту проблему сказочному финалу?
Первая строка в Gameview выглядит подозрительно. Похоже, что вы снова вызываете инициализатор для JAGameBackground. – Felix
Второй раз? Я понимаю, что он возвращает инициализированный экземпляр –
, вы должны создать метод класса и создать экземпляр с [[JAGameBackground alloc] initWithFrame: ...] – Felix