做自(zì)由與創造的先行者

iOS内存管理(lǐ)

iOS開(kāi)發手冊

簡介

iOS下(xià)内存管理(lǐ)的基本思想就是引用(yòng)計(jì)數,通過對(duì)象的引用(yòng)計(jì)數來(lái)對(duì)内存對(duì)象的生命周期進行控制。具體到(dào)編程時(shí)間方面,主要有兩種方式:

1:MRR(manual retain-release),人工(gōng)引用(yòng)計(jì)數,對(duì)象的生成、銷毀、引用(yòng)計(jì)數的變化都是由開(kāi)發人員來(lái)完成。

2:ARC(Automatic Reference Counting),自(zì)動引用(yòng)計(jì)數,隻負責對(duì)象的生成,其他(tā)過程開(kāi)發人員不再需要關心其銷毀,使用(yòng)方式類似于垃圾回收,但(dàn)其實質還是引用(yòng)計(jì)數。

面臨的問題

根據蘋果說明(míng)文(wén)檔,面臨的兩個主要問題是:

釋放(fàng)或覆蓋的數據仍然在使用(yòng)。這(zhè)将造成内存損壞,通常在應用(yòng)程序崩潰,或者更糟,損壞用(yòng)戶數據。

不釋放(fàng)不再使用(yòng)的數據會(huì)導緻内存洩漏。分配的内存,内存洩漏不會(huì)釋放(fàng),即使它從(cóng)來(lái)沒有再次使用(yòng)。洩漏會(huì)導緻應用(yòng)程序的内存使用(yòng)量日益增加,這(zhè)反過來(lái)又可能(néng)會(huì)導緻系統性能(néng)較差或死機。

内存管理(lǐ)規則

我們創建自(zì)己的對(duì)象,當他(tā)們不再需要的時(shí)候,釋放(fàng)他(tā)們。

保留需要使用(yòng)的對(duì)象。如果沒有必要必須釋放(fàng)這(zhè)些(xiē)對(duì)象。

不要釋放(fàng)我們沒有擁有的對(duì)象。

使用(yòng)内存管理(lǐ)工(gōng)具

可以用(yòng)Xcode工(gōng)具儀器的幫助下(xià)分析内存的使用(yòng)情況。它包括的工(gōng)具有活動監視(shì)器,分配,洩漏,僵屍等

分析内存分配的步驟

1. 打開(kāi)一個現(xiàn)有的應用(yòng)程序。

2. 選擇産品。

3. 選擇 Allocations 和(hé) Profile。

4. 我們可以看(kàn)到(dào)不同對(duì)象的内存使用(yòng)情況

5. 你(nǐ)可以切換視(shì)圖控制器查看(kàn)内存是否釋放(fàng)。

6. 同樣我們可以使用(yòng) Activity Monitor 來(lái)查看(kàn)内存在應用(yòng)程序中的分配的情況。

7. 這(zhè)些(xiē)工(gōng)具可以幫助我們了(le)解内存的使用(yòng)情況及在什(shén)麽地方可能(néng)發生洩漏。

網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
下(xià)一篇:iOS Twitter和(hé)Facebook
上(shàng)一篇:iOS 開(kāi)發手冊