在使用dismissViewControllerAnimated退出當前視圖的時候,理論上,該視圖對象就會被清除了,
也就是說會進去當前類的析構函數deinit里面。但是有時候會發現,dismiss之后並沒有進入析構,往往就會因此出現一些奇怪的現象
有時候沒有出現問題,也不能代表,我們就可以不管它了。
之所以沒有進入析構,是因為當前對象包含了沒有釋放的委托存在。比如我這個視圖在打開之后,關聯了這個委托事件
這種情況下,你在dismiss之后無論如何也進入不了析構,所以你需要在dismiss之前手動釋放掉所有的委托,具體到上面的例子,就是說在執行dismissViewControllerAnimated之前必須加一行代碼
這樣就能在退出的時候釋放掉所有資源,避免釋放不干凈,內存溢出等情況發生。
這應該是swift中的一個bug,理論上應該在退出視圖的時候,自動釋放掉所有資源,不應該讓程序員來手動干這個事情。