Интеграция Admob на iPhone - проблема утечки памяти - PullRequest
1 голос
/ 12 апреля 2011

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

- (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.

Что-то не так с моим кодом, что может быть причинойутечка?

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

Мартин

Ответы [ 2 ]

3 голосов
/ 23 апреля 2011

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

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

Джо

1 голос
/ 12 апреля 2011

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

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

...