Интеграция Admob на iPhone - проблема утечки памяти

Интересно, может ли кто-нибудь помочь со следующим. Я интегрировал в свое приложение iAds и AdMob. Однако пользователь сообщил, что приложение вылетает на iPod Touch. Используя инструменты в xCode, мне удалось определить, что что-то под названием «GOOGLE_SHUFFLE_RVS_User_waylonis_Code_afma1_googlmac_iPhone_GoogleAds_Signals_Protected_build_GoogleAdsSignals_build_Release_iphoneos_Google» вызывает утечку памяти каждые 20 секунд, так что это происходит каждые 20 секунд, это вызывает утечку памяти каждые 20 секунд.

Мой код выглядит следующим образом.

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
if (self.bannerIsVisible)
{

    [UIView beginAnimations:@"animateAdBannerOff" context:NULL];
    // banner is visible and we move it out of the screen, due to connection issue
    banner.frame = CGRectOffset(banner.frame, 0, -90);
    [UIView commitAnimations];
    self.bannerIsVisible = NO;

}

    [self loadAdMobAd];
}

-(void)loadAdMobAd {

if (!bannerView_) {

CGRect adSize = CGRectMake (0,40,0,0);
adSize.size = GAD_SIZE_320x50;

bannerView_ = [[GADBannerView alloc] initWithFrame:adSize];
bannerView_.rootViewController = self;

bannerView_.adUnitID = MY_BANNER_UNIT_ID;

bannerView_.rootViewController = self;
[self.view addSubview:bannerView_];

// Initiate a generic request to load it with an ad.
[bannerView_ loadRequest:[GADRequest request]]; 

}
}

Идея состоит в том, что если iAd недоступен, вместо него загружается реклама AdMob.

Что-то не так с моим кодом, что могло вызвать утечку?

Большое спасибо,

Мартин


person GuybrushThreepwood    schedule 12.04.2011    source источник


Ответы (2)


По-видимому, утечка памяти GOOGLE_SHUFFLE_RVS - известная проблема. По данным группы Google (http://groups.google.com/group/google-admob-ads-sdk/browse_thread/thread/2631fcb87d909bfa/edafd2a4ac175f47?lnk=gst&q=memory+leak#edafd2a4ac175f47), "это известный сбой" , и это будет исправлено в следующем выпуске »(из комментария от 31 марта). Они также говорят, что это исправлено внутри, но еще не выпущено.

Я был очень удивлен, что AdMob / Google не уделяли более высокого внимания чему-то столь же важному, как рекламный баннер, утечка памяти которого происходит каждый раз при загрузке рекламы. Думаю, сейчас все просто используют версию с утечкой памяти. : -o

Джо

person Swindler    schedule 23.04.2011

Вы выделяете bannerView_, добавляете его в представление, но не отпускаете.

Попробуйте добавить [bannerView_ release]; после строки loadRequest.

person picciano    schedule 12.04.2011
comment
Спасибо. Течет меньше, но течет все равно. Теряете 100 байт при каждом запросе? - person GuybrushThreepwood; 12.04.2011