我正在以編程方式創建所有顯示對象,並將它們添加到故事板場景子視圖中。切換故事板場景時從內存中移除對象
例如:
let button: UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: 160, height: 50))
self.view.addSubview(button)
當改變故事板的場景,我遇到巨大的內存泄漏(內存使用每個場景變化之間幾乎翻了一番),這當然顯示了更改時,這些對象不會被自動刪除場景。我已經閱讀了Swift中有關垃圾收集的一些內容,但沒有在這個特定的用例上找到很多信息。
通過改變故事板的場景,我通過存在視圖控制器的意思是,像這樣:
self.presentViewController(targetController, animated: true, completion: nil)
所以隨着中說,我的問題是:
1)刪除對象可以像這樣進行:
button.removeFromSubview()
button = nil
是否正確?
2)是否有辦法消除插入視圖的子視圖在一個循環中的任何對象,併爲其分配爲零完全刪除與該對象關聯的任何引用?我可以逐個刪除它們,但這是一項艱鉅的任務。
3)是否有改變場景後自動從內存中刪除對象?這將是最好的解決方案。
一個解決方案的例子將不勝感激。
在此先感謝。
你在哪裏添加子視圖? viewDidLoad中? viewDidAppear?在裏面? – Acey 2014-11-24 22:56:05
In viewDidLoad。謝謝 – PersuitOfPerfection 2014-11-26 14:50:46