IOS 對deallloc 的兩種處理方法

2021-06-19 16:17:04 字數 578 閱讀 9874

對於dealloc函式有兩種做法,

乙個是直接將例項變數release掉:

-(void)dealloc

{[subject release];

[super dealloc];

}另一種是將變數relsease 掉再將它指向nil;

-(void)dealloc

{[subject release]

subject=nil;

[super dealloc];

}兩種方法結果是一致的,但是有些許的差別。

變數在被release掉後,系統將該記憶體標識為可用,nil只是起到重置指標的作用。

但是在object-c中給nil物件傳送訊息是,什麼也不會發生,這樣在除錯的時候,很難找到出錯的地方,所以

在除錯階段最後用第一種,為了上線的時候用第二種,

可以通過巨集定義

#if debug  

#define mcrelease(x) [x release]  

#else  

#define mcrelease(x) [x release], x = nil  

#endif

iOS 載入Image的兩種方式

nullable uiimage imagenamed nsstring name nullable uiimage imagewithcontentsoffile nsstring path 這個程式一共載入了三組序列幀動畫 首先我們使用 nullable uiimage imagenamed n...

對URL編碼的兩種做法

例如你在http baidu.com 裡面搜尋 愛你w 你將看到位址列裡面出現 注意word 後的 b0 ae c4 e3w 就是ie對url編碼的結果,也即是gb轉換成unicode 在.net裡你怎麼獲得這樣的效果呢?web.httputility.urlencode就是用來搞這個東東的,前提是...

靜態變數中的兩種兩種取出方式self和物件取值

在我們的很多時候,可能會用到靜態變數,如統計隨時可變的量,儘管也可以使用global 全域性變數 但是這樣容易破壞類的結構性,所以,使用靜態變數來表示或則控制可變的量,也可以理解為共享的量,下面是我對靜態變數取出的的兩種方式特點認識 1 首先,經過測試,靜態變數是可以脫離物件而存在的,準確的說,靜態...