Я имею дело с невероятной утечкой памяти при загрузке промежуточной рекламы через AdMob. При наблюдении за памятью в Xcode & Instruments, память скачет на 10 МБ каждый раз, когда я посещаю контроллер представления, на котором размещена реклама. Кроме того, при закрытии приложения на моем телефоне и повторном его открытии также увеличивается объем памяти на 30-40 Мб, что просто смешно.
Я попытался профилировать это в приборах, и выделяемая память - это все системные библиотеки, и ничто не указывает на то, что не так. Я прочитал другие ответы о переполнении стека, такие как ADMOB Утечка памяти?
но никакой ответ не помог мне до сих пор. Может кто-нибудь подскажет, что не так с моим кодом? Я следовал за точной документацией AdMob, которая https://developers.google.com/admob/ios/interstitial, и все прекрасно работает, кроме этой безумной утечки памяти. Вот точный код, который вызывает утечку ниже.
class ViewController: UIViewController, GADInterstitialDelegate {
var interstitial: GADInterstitial!
override func viewDidLoad() {
interstitial = createAndLoadInterstitial()
interstitial.delegate = self
}
func update() {
if interstitial.isReady {
interstitial.present(fromRootViewController: self)
}
}
func createAndLoadInterstitial() -> GADInterstitial {
let interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
interstitial.delegate = self
let request = GADRequest()
interstitial.load(request)
return interstitial
}
func interstitialDidDismissScreen(_ ad: GADInterstitial) {
interstitial = createAndLoadInterstitial()
}
// I am calling update() inside a button when pressed in this VC.