每当有新的广告出现时,我就会使用Swift的ADMOB语言,我的记忆力会增强。我想是漏水了。没有ADMOB,其他一切都很好。
var inter: GADInterstitial
override func viewWillAppear(animated: Bool) {
inter = GADInterstitial()
inter.delegate = self
inter.adUnitID = "****"
var request:GADRequest = GADRequest()
request.testDevices = [ "***" ]
inter.loadRequest(request)
}
我正在使用UIActionAlert来显示间隙
self.inter.presentFromRootViewController(self)
内存报告链接:
我做错了什么吗?我用的是ARC。我可以自己强制释放这个Interstitials
吗?
EDİT
我也试过GADBanner
。我只是打开应用程序;我没有做任何其他事情,内存正在增加
override func viewWillAppear(animated: Bool) {
banner = GADBannerView()
banner.delegate = self
banner.adSize = kGADAdSizeSmartBannerPortrait
banner.adUnitID = "****"
var request:GADRequest = GADRequest()
banner.rootViewController = self
request.testDevices = [ "****" ]
self.view.addSubview(banner)
}
发布于 2017-05-11 04:40:22
您需要调用destroy()
来避免横幅广告和间隙广告的内存泄漏。间隙广告是一次性使用的对象,因此您必须销毁它们。横幅广告可以重用,但一旦使用完毕,请调用destroy()
。
发布于 2017-05-10 06:16:06
我也遇到了同样的问题,尽管是GADInterstitial AdMob广告。内存泄漏造成了巨大的CPU波动。问题是,您必须转到实际的根视图控制器。我在Objective C中,但基本上,如果你在,比如说,UITabBarController视图层次结构中,那么试试这个:
banner.rootViewController = (UITabBarController *)self.view.window.rootViewController
这一件事解决了我所有的问题。希望它能起作用!
发布于 2014-10-28 18:49:59
我认为您需要通过将委托设置为nil来释放横幅。来自AdMob文档(请参见https://developers.google.com/mobile-ads-sdk/docs/admob/ios/banner?hl=es):
注意,如果您将委托实现为一个不同的对象,而不是GADBannerView的子类,那么在释放视图之前,您应该确保将GADBannerView的GADBannerView属性设置为nil。
- (void)dealloc {
bannerView_.delegate = nil;
// Don't release the bannerView_ if you are using ARC in your project
[bannerView_ release];
[super dealloc];
}
在您的情况下,我认为您只需要实现bannerView_.delegate = nil
调用。
我希望这能帮到你。
https://stackoverflow.com/questions/24983500
复制相似问题