2011-04-12 71 views
1

我想知道是否有人可以帮助以下。我已将iAd和AdMob集成到我的应用中。但是,用户报告说该应用在iPod Touch上崩溃。在xCode中使用工具我已经设法识别出某个名为“GOOGLE_SHUFFLE_RVS_User_waylonis_Code_afma1_googlmac_iPhone_GoogleAds_Signals_Protected_build_GoogleAdsSignals_build_Release_iphoneos_Google”的内容在每次调用时会导致大约500个字节的内存泄漏。我的广告刷新率设置为20秒,因此每20秒发生一次。在iPhone上的Admob集成 - 内存泄漏问题

我的代码如下。

- (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广告会被加载。

我的代码有什么问题可能导致泄漏?

非常感谢,

马丁

回答

3

显然GOOGLE_SHUFFLE_RVS内存泄漏是一个已知问题。根据谷歌集团(http://groups.google.com/group/google-admob-ads-sdk/browse_thread/thread/2631fcb87d909bfa/edafd2a4ac175f47?lnk=gst & q =内存+泄漏#edafd2a4ac175f47),“这是一个已知的故障,它将在下一个版本中修复“(来自3月31日发表的评论)。他们也表示它在内部已经修复但尚未发布。

我非常惊讶,AdMob/Google没有给出像每次广告加载时会泄漏内容的广告横幅那样重要的事项。我想现在每个人都只是使用内存泄漏版本。 :-o

Joe

1

你alloc'ing bannerView_,将其添加到视图,而不是将其释放。

尝试在loadRequest行之后添加[bannerView_ release];

+0

谢谢。它泄漏较少,但仍然泄漏。每次请求丢失100字节? – GuybrushThreepwood 2011-04-12 19:43:19