【发布时间】:2014-09-18 22:44:18
【问题描述】:
每当有新广告出现时,我都会在 ADMOB 中使用 Swift 语言,我的记忆力正在增加。我认为有泄漏。没有 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吗?
编辑:
我也试过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)
}
【问题讨论】:
-
我的应用也有同样的问题。刚启动应用程序,如果横幅加载新广告,内存就会填满。如果我加载新的插页式广告,也会出现同样的问题。似乎 GADBannerView 和 GADInterstitalView 从未被 ARC 清理过。如果我 popToViewController,它甚至会保留在同一个内存中。有人有小技巧吗?
-
使用检漏仪配置应用程序。找出正在泄漏的对象并报告。
-
克里姆,你找到解决办法了吗?
-
@Minetroni-Soup ,我没有找到它,但我认为最好的方法是通过更改源代码来编写你的实现。他们的代码在 2 年前就有问题了。
-
2017 年依然存在泄漏
标签: ios xcode memory-leaks swift admob