2014-01-06 4 views
0

Когда-то был знаменитый 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: NSZombie in Instruments

Любые идеи о том, как дать эту проблему сказочному финалу?

+1

Первая строка в Gameview выглядит подозрительно. Похоже, что вы снова вызываете инициализатор для JAGameBackground. – Felix

+0

Второй раз? Я понимаю, что он возвращает инициализированный экземпляр –

+0

, вы должны создать метод класса и создать экземпляр с [[JAGameBackground alloc] initWithFrame: ...] – Felix

ответ

1

Оказывается, я сделал ошибку, не загружая ОВР Баннер (наряду с другими объектами UIKit) в главном потоке ...

+0

Вы можете отметить свой собственный ответ как принято, если он решит проблему для вас. –

+0

Извините, занят –

Смежные вопросы