亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談IOS內(nèi)存開發(fā)管理機制的應(yīng)用

        2016-07-13 07:58:07肖斯瑤
        大科技 2016年36期
        關(guān)鍵詞:計數(shù)器所有權(quán)管理機制

        肖斯瑤

        (湖南省長沙市長郡中學(xué) 410002)

        淺談IOS內(nèi)存開發(fā)管理機制的應(yīng)用

        肖斯瑤

        (湖南省長沙市長郡中學(xué) 410002)

        ios是蘋果公司的主流操作系統(tǒng),在目前網(wǎng)絡(luò)發(fā)展的背景下,ios的開發(fā)一直是業(yè)界研究的熱點。本文主要針對ios內(nèi)存開發(fā)管理機制的應(yīng)用進行分析。

        ios系統(tǒng);內(nèi)存開發(fā)管理機制;應(yīng)用

        ios是蘋果公司的操作系統(tǒng),來開發(fā)某些移動設(shè)備軟件所使用的。許多ios開發(fā)出來的軟件都是因為內(nèi)存的泄露而崩潰,再加上移動設(shè)備本身內(nèi)存有限,內(nèi)存管理在ios開發(fā)中極為重要。所以了解ios內(nèi)存開發(fā)管理機制對于開發(fā)者來說是非常有必要的。

        1 內(nèi)存管理中的所有權(quán)策略

        任何對象的存在都不能離開其所有者單獨存在。如果沒有所有者,該對象就會被判斷為無效對象,被系統(tǒng)銷毀。為了明確對象的所有權(quán)義務(wù),蘋果公司創(chuàng)建的編程環(huán)境Cocoa設(shè)立了一系列的判斷準(zhǔn)則:

        (1)所有權(quán)不是任何一個對象都能有的,它是需要一定條件的,最主要的是要對對象執(zhí)行retain、new等操作,才能獲得其所有權(quán)。

        (2)不要只是獲得所有權(quán)卻不釋放,如果不再需要某個對象的所有權(quán),要及時釋放??梢酝ㄟ^release或者autorelease來實現(xiàn)所有權(quán)的釋放。

        (3)如果沒有該對象的所有權(quán),那么就不能對其實行釋放所有權(quán)操作。

        2 保留計數(shù)機制

        所有權(quán)策略是在調(diào)用retain方法后通過保留計數(shù)實現(xiàn)的。每個對象創(chuàng)建完成后,為了記錄其所有權(quán)個數(shù),系統(tǒng)會自動生成一個計數(shù)器供其使用,并且用此計數(shù)器管理對象的內(nèi)存。當(dāng)一個對象創(chuàng)建完成,計數(shù)器值等為1;將release消息發(fā)送給對象,計數(shù)器值減1;將retain消息發(fā)送給對象,計數(shù)器值加1;將autorelease消息發(fā)送給對象,在某個階段上計數(shù)器的值減1.若計數(shù)器值等于0,那么就會釋放該對象的內(nèi)存。這些工作都是由一個名為dealloc的函數(shù)來執(zhí)行的,每個對象都會有這樣一個方法。

        3 ios內(nèi)存釋放的一般規(guī)則

        (1)如果對象是通過copy、new等關(guān)鍵字創(chuàng)建的,并且其保留計數(shù)器值為1,則當(dāng)再想使用該對象時,一定要向?qū)ο蟀l(fā)送一條autorelease或release消息以便當(dāng)該對象壽命結(jié)束時將其進行銷毀。

        (2)如果對象是通過其他方法創(chuàng)建的,并且計數(shù)器保留的值為1,與此同時將其設(shè)置為自動釋放,要想一段時間內(nèi)一直擁有這個對象,就必須想法保留住這個對象并且在操作完成時還要完成釋放。

        (3)已經(jīng)確定要保留某個對象,那應(yīng)該考慮如何對其釋放。若想將保留下來的對象釋放,必須堅持release和retain的方法,并保持相同的使用次數(shù)。

        4 自動釋放池的作用及使用場景

        自動釋放池其實就是一個用來實現(xiàn)內(nèi)存自動回收的盛放對象的池子,它是NSAutoreleasePool的實例,它里面既包含自身定義的對象還包含接收到autorelease指令的對象。當(dāng)自動回收池將被回收刪除時,它會給里面的每個對象都發(fā)一條release消息,其他情況還會一直保留著對象,這樣就會將對象的生命周期延長至自動釋放池自身被釋放。如果釋放池被刪除導(dǎo)致對象沒有了可用的釋放池,Cocoa還會記錄下相應(yīng)的autorelease異常。

        盛放自動釋放池的是一個一個的堆棧。棧頂存放的是新創(chuàng)建的自動釋放池,接收到autorelease消息的對象會被添加到棧頂?shù)淖詣俞尫懦刂?,?dāng)釋放池被回收或者不能用時,就會被堆棧自動刪除。

        大部分情況,程序的開發(fā)應(yīng)用的是應(yīng)用系統(tǒng)的開發(fā)包自帶的自動釋放池,但是以下情況,自帶的自動釋放池不能起到回收的作用,必須要使用自己的自動釋放池:

        (1)程序編寫的方式不是用基于應(yīng)用系統(tǒng)而開發(fā)出來的,比如通過命令行工具進行編寫的程序,它當(dāng)然不能用應(yīng)用系統(tǒng)的內(nèi)置自動釋放池,必須自己建造自己的自動釋放池。

        (2)如果生成一個從屬線程,當(dāng)線程開始執(zhí)行,就必須創(chuàng)建自己自動釋放池,因為在線程內(nèi)創(chuàng)建的對象并不會在函數(shù)結(jié)束后自動釋放。

        (3)如果很多對象被創(chuàng)建在一個循環(huán)里,最好在循環(huán)體內(nèi)部創(chuàng)建一個自動釋放池以便于減少程序的最大內(nèi)存占用量。

        5 內(nèi)存管理中常見的錯誤

        在這里主要介紹iPhone開發(fā)中內(nèi)存管理常見的錯誤。

        沒有使用存取方法。沒有存取方法的程序在一些簡單的情況下可以正常運行,但是當(dāng)忘記了釋放或保留時或者當(dāng)實例變量的內(nèi)存管理語義發(fā)生錯誤時,如果沒有存取方法,程序就會發(fā)生錯誤。

        內(nèi)存泄露。當(dāng)對象的保留計數(shù)器值為1,并且在方法釋放的作用域內(nèi)沒有對應(yīng)的release時,對象就不會被自動釋放池釋放,最后導(dǎo)致泄露內(nèi)存。

        釋放沒有所有權(quán)的對象。如果釋放的是沒有所有權(quán)的對象,會發(fā)生過度釋放的錯誤。

        6 結(jié)束語

        本文主要對影響ios內(nèi)存的幾個重要方面進行了闡述,著重剖析了內(nèi)存管理中難以理解以及容易混淆的部分,并歸納總結(jié)了ios開發(fā)中常見的內(nèi)存管理的錯誤以及規(guī)則。最后達(dá)到了初步了解ios內(nèi)存開發(fā)的管理機制的目的。

        [1]李蕾,李曉麗.基于IOS手持終端的移動學(xué)習(xí)資源設(shè)計研究[J].中國電化教育,2014(12).

        [2]盛平,嚴(yán)冬,張德勤.基于IOS平臺的智能視頻系統(tǒng)客戶端設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,2015(07).

        [3]段艷艷,趙啟升.基于IOS的O2O商務(wù)平臺設(shè)計與實現(xiàn)[J].泰州職業(yè)技術(shù)學(xué)院學(xué)報,2014(03).

        [4]孫曉文.IOS與Android操作系統(tǒng)的優(yōu)缺點比較[J].無線互聯(lián)科技,2013(12).

        TN929.5

        A

        1004-7344(2016)36-0269-01

        2016-11-2

        猜你喜歡
        計數(shù)器所有權(quán)管理機制
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        試論工程造價管理機制的完善與創(chuàng)新
        商品交換中的所有權(quán)正義及其異化
        建立有效的管理機制奠定堅實的人力資源基礎(chǔ)
        工電道岔結(jié)合部聯(lián)合管理機制的探討
        如何構(gòu)建醫(yī)院有效的績效管理機制
        動產(chǎn)所有權(quán)保留
        日本法中的所有權(quán)保留
        計數(shù)器競爭冒險及其處理的仿真分析
        任意N進制計數(shù)器的設(shè)計方法
        河南科技(2014年10期)2014-02-27 14:09:30
        高跟丝袜一区二区三区| 欧美激情在线播放| 一区二区三区国产| 欧美白人最猛性xxxxx| 大伊香蕉精品视频一区| 亚洲日本精品一区二区三区| 国产成人精品一区二三区孕妇| 国产a级三级三级三级| 亚洲综合区图片小说区| av无码精品一区二区乱子| 都市激情亚洲综合一区| 在线天堂av一区二区| 亚洲精品久久久久久久蜜桃| 亚洲日韩欧洲无码av夜夜摸| 亚洲嫩模高清在线视频| 日本一二三区在线视频观看 | 亚洲国产av一区二区四季| 国产成人av乱码在线观看| 337人体做爰大胆视频| 2021亚洲色中文字幕| 亚洲精品熟女av影院| 精品国产一区二区三区色搞| 亚洲а∨精品天堂在线| 日韩AV有码无码一区二区三区| 国产一级一片内射在线| 日韩一区二区av极品| 久久久www成人免费毛片| 亚洲的天堂av无码| 少妇高潮紧爽免费观看| 久久精品一区二区三区蜜桃| 欧美性猛交xxxx三人| 最新亚洲av日韩av二区| 久草91这里只有精品| av免费不卡一区二区| 帮老师解开蕾丝奶罩吸乳网站| 狠狠人妻久久久久久综合| 亚洲精品精品日本日本| 美丽的小蜜桃在线观看| 国产裸体舞一区二区三区| 国产日韩A∨无码免费播放| 99久久精品国产一区色|