タブバコントローラプロジェクトのビューコントローラからメモリを解放(解放)する方法と、両方のビューコントローラを呼び出さない方法が必要です。私はそれはそれはメモリ内にあり、それをビューコントローラから即座にメモリを解放する方法
を解放しないで私を見るのです楽器ツールを使用し、次は、ビューコントローラ タップアプリケーションの最初のビューコントローラである、両方のために私のコードです:
import UIKit
class WebViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
deinit {
print("web view controller is De init")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.dismiss(animated: true, completion: nil)
}
}
とタップアプリケーションで同じプロジェクトで2番目のビューコントローラは以下の通りである:あなたがコードを試してみて、deinitメソッドが呼び出さないで見ることができます
import UIKit
class MovieDownloadingViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func viewWillDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.dismiss(animated: true, completion: nil)
}
deinit {
print("Movie Downloading View Controller is De init")
}
}
強参照、メモリをリークする間違ったコードはいつですか?これらのビューコントローラからメモリを解放することはできませんか?
いいえ、これはView Controllerの別のインスタンスを作成することであり、 'deinit'が呼び出されているのが見えています。しかし、オリジナルのView Controllerのインスタンスは、まだメモリ内に息づいています。 – Rob