中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

在iPhone應(yīng)用中如何避免內(nèi)存泄露

  我們?cè)?jīng)對(duì)iPhone的內(nèi)存管理做過(guò)比較深入的報(bào)道,如何有效控制iPhone內(nèi)存管理的對(duì)象的所有權(quán)與引用計(jì)數(shù)和以及iPhone內(nèi)存的自動(dòng)釋放與便捷方法。本文我們將介紹在iPhone應(yīng)用中如何避免內(nèi)存泄露。想了解“在iPhone應(yīng)用中如何避免內(nèi)存泄露”就必須先了解iPhone內(nèi)存管理的所有權(quán)。

  關(guān)于所有權(quán)

  所有權(quán)是iPhone內(nèi)存管理的核心思想,對(duì)象的所有者負(fù)責(zé)在使用完對(duì)象后進(jìn)行釋放。一個(gè)對(duì)象可以有多個(gè)所有者,當(dāng)它沒(méi)有所有者時(shí)將被設(shè)置為取消分配(deallocation)。

  創(chuàng)建對(duì)象時(shí),所有權(quán)通過(guò)alloc、new、或者copy的方式建立,之后通過(guò)調(diào)用retain或者通過(guò)Cocoa函數(shù)來(lái)分配和復(fù)制對(duì)象的所有權(quán)。內(nèi)存釋放有兩種方式,一種方法是明確地請(qǐng)求釋放對(duì)象的所有權(quán),另一種方法則是使用自動(dòng)釋放池(auto-release pool)。

  所有權(quán)的背后是一個(gè)和引用有關(guān)的運(yùn)算系統(tǒng),iPhone SDK的大多數(shù)對(duì)象使用這個(gè)系統(tǒng),彼此之間建立著很強(qiáng)的引用和參照。

  當(dāng)你創(chuàng)建一個(gè)對(duì)象時(shí),引用值為1,調(diào)用一次retain則對(duì)象的引用值加1,調(diào)用一次release則對(duì)象的引用值減1,當(dāng)引用值為0時(shí),對(duì)象的所有權(quán)分配將被取消。使用自動(dòng)釋放池意味著對(duì)象的所有權(quán)將在一段延后的時(shí)間內(nèi)被自動(dòng)取消。

  對(duì)象之間也可以建立弱的引用參照,此時(shí)意味著,引用值不會(huì)被保留,對(duì)象的分配需要手動(dòng)取消。

  什么時(shí)候使用retain?

  什么時(shí)候你想阻止對(duì)象在使用前就被釋放?

  每當(dāng)使用copy、alloc、retain、或者Cocoa函數(shù)來(lái)創(chuàng)建和復(fù)制所有權(quán),你都需要相應(yīng)的release或者auto-release。

  開(kāi)發(fā)者應(yīng)該從所有權(quán)的角度來(lái)考慮對(duì)象,而不必?fù)?dān)心引用值。只要你有相應(yīng)的retain和release方法,就能夠?qū)σ弥颠M(jìn)行+1和-1操作。

  注意:你或許想使用[object retainCount],但它可能因?yàn)镾DK的底層代碼而發(fā)生返回值出錯(cuò)的情況。在內(nèi)存管理時(shí)不推薦這種方式。

  自動(dòng)釋放

  將對(duì)象設(shè)置為自動(dòng)釋放意味著不需要明確地請(qǐng)求釋放,因?yàn)楫?dāng)自動(dòng)釋放池清空時(shí)它們將被自動(dòng)釋放。iPhone在主線程上運(yùn)行自動(dòng)釋放池,能夠在事件循環(huán)結(jié)束后釋放對(duì)象。當(dāng)你創(chuàng)建你自己的線程時(shí),你需要?jiǎng)?chuàng)建自己的自動(dòng)釋放池。

  iPhone上有便利的構(gòu)造函數(shù),用這種方法創(chuàng)建的對(duì)象會(huì)設(shè)置為自動(dòng)釋放。

例子:

   1. NSString* str0 = @"hello";  
2. NSString* str1 = [NSString stringWithString:@"world"];
3. NSString* str2 = str1;

it知識(shí)庫(kù)在iPhone應(yīng)用中如何避免內(nèi)存泄露,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 性视频一区| 久久久噜噜噜www成人网 | 国产美女永久免费无遮挡 | 亚洲欧美在线观看 | 毛片黄片 | 欧美自拍第一页 | 二区av | 综合九九| 99re热精品视频国产免费 | 美女视频. | 国产在线麻豆精品入口 | 亚洲精品中文字幕在线观看 | 久久高清国产视频 | 美女视频黄的免费 | 久久毛片 | 欧美综合自拍 | 亚洲视频精品 | 国产欧美精品一区二区三区 | 精品久久电影 | 欧美久 | 久久精品视频一区二区三区 | 一区二区三区影院 | 国产精品久久久久久久白浊 | 欧美一区二区三区四区视频 | 国产成人在线一区 | 亚洲a在线观看 | 久久福利 | 国产精品九九视频 | 国产精品国产 | 香蕉久久a毛片 | 国产一区在线免费观看视频 | 亚洲第一成年免费网站 | 国产精品毛片一区二区三区 | 天天在线操 | 亚洲一区二区在线免费观看 | www.奇米| 99久久亚洲 | 国产不卡在线观看 | 国产精品亚洲成在人线 | 欧美a∨ | 久久99精品久久久久久秒播九色 |