在iPhone上的Admob集成 - 内存泄漏问题
我想知道是否有人可以帮助以下。我已将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广告会被加载。
我的代码有什么问题可能导致泄漏?
非常感谢,
马丁
显然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
你alloc'ing bannerView_,将其添加到视图,而不是将其释放。
尝试在loadRequest行之后添加[bannerView_ release];
。
谢谢。它泄漏较少,但仍然泄漏。每次请求丢失100字节? – GuybrushThreepwood 2011-04-12 19:43:19