IOS開發記憶體釋放小結

2021-09-30 15:21:31 字數 983 閱讀 9396

記憶體釋放是iphone開發過程中比較重的地方,所以在開闢記憶體後,我們必須小心、謹慎、並且及時的釋放掉。

記憶體的釋放,可以呼叫dealloc函式,該函式可以釋放,該類物件所占用的記憶體空間,為iphone節省寶貴的記憶體資源。

那麼dealloc函式是什麼時候釋放的哪?

測試**如下:

我們先建立乙個類:test_1,修改他的dealloc函式

- (void)dealloc

我們在另乙個地方建立他

test_1 *m_text;

if (m_text==nil)

int a = [m_text retaincount];//a = 1

[m_text retain];

int b = [m_text retaincount];//b = 2

[m_text release];

int c = [m_text retaincount];//c = 1

[m_text release];

int d= [m_text retaincount];//d = 1

m_text = nil;

int e= [m_text retaincount];//e = 0

經過測試發現,其實int d= [m_text retaincount];//d = 1該行**中 d的理論之應該=0,表示該物件已經為空,其所占用的記憶體資源已經得到釋放, 也就是執行到改行**後,呼叫了函式

- (void)dealloc

輸出:2011-10-25 16:05:13.333 untitled[6358:207] test view did dealloc !

表示,物件m_text所佔據的記憶體空間已經完全得到釋放。

通過測試我們也發現,當乙個物件的retaincount函式=0的時候,系統會馬上呼叫dealloc函式釋放該資源。

[m_text release];

m_text = nil;

the end !

ios 記憶體小結

這是 看 書籍 objective c 高階程式設計 ios與os x多執行緒和記憶體管理 一書的隨記。除錯 1.檢視 autoreleasepool 池裡面的物件 extern void objc autoreleasepoolprint objc autoreleasepoolprint 上面的...

mysql記憶體釋放 MySQL記憶體不釋放

歡迎進入linux社群論壇,與200萬技術人員互動交流 進入 連線了一下,並進行了一次查詢操作 root nj 245 thu apr 24 16 38 38 2014 information schema select count from client statistics count 5 1 ...

ios開發記憶體管理要點

一 使用nsmutablearray例項時的三個記憶體管理要點 1.物件加入nsmutablearray例項時,物件會收到retain訊息 陣列物件會成為該物件的擁有方,並得到乙個指向該物件的指標。2.物件從nsmutablearray例項移出時,會收到release訊息 陣列物件會放棄該物件的所有...