iOS ARC環境下dealloc的使用

2022-08-01 14:39:14 字數 730 閱讀 2111

本文**至  

眾所周知,ios開發的時候,使用arc的話,dealloc函式是不需要實現的,寫了反而會出錯。

但有些特殊的情況,dealloc函式還是需要的。

比如,在畫面關閉的時候,需要把viewcontroller的某些資源釋放,

在viewdiddissppear不一定合適,viewdidunload一般情況下只在memory warning的時候才被呼叫。

不用arc的情況下,我們自然會想到dealloc函式。

其實arc環境下,也沒有把dealloc函式禁掉,還是可以使用的。只不過不需要呼叫[supper dealloc]了。

舉個例子,畫面上有uiwebview,它的delegate是該畫面的viewcontroller,在webview載入完成後,需要做某些事情,比如,把indicator停掉之類的。

如果在webview載入完成之前關閉畫面的話,畫面關閉後,viewcontroller也釋放了。但由於webview正在載入頁面,而不會馬上被釋放,等到頁面載入完畢後,**delegate(viewcontroller)中的方法,由於此時viewcontroller已經被釋放,所以會出錯。(message sent to deallocated instance)

解決辦法是在dealloc中把webview的delegate釋放。

[objc]view plain

copy

-(void)dealloc   

iOS ARC下迴圈引用的問題

strong 適用於oc物件,作用和非arc中的retain作用相同,它修飾的成員變數為強指標型別 weak 適用於oc物件,作用和非arc中的assign作用相同,修飾的成員變數為弱指標型別 assging 適用於非oc物件型別 在oc物件迴圈引用的時候一端為strong型別,另一段為weak型別...

CentOS 環境下 搭建 LNMP環境

關掉防火牆,避免實驗中出現伺服器無法訪問的情況 chkconfig iptables off安裝lnmp環境所需的開發包和庫檔案 yum y install ntp make openssl openssl devel pcre pcre devel libpng libpng devel libj...

Linux環境下FTP環境搭建

目錄 一 安裝 ftp 服務 二 檢視當前 ftp 服務狀態 三 通過 service 的方式來 啟動 檢視 停止和重啟 ftp服務 四 通過指令碼的方式來 啟動 檢視 停止和重啟 ftp服務 root localhost data rpm q vsftpd 檢查ftp服務是否安裝,如果沒有安裝則安...