999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談IOS內存開發管理機制的應用

2016-07-13 07:58:07肖斯瑤
大科技 2016年36期
關鍵詞:管理機制程序管理

肖斯瑤

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

淺談IOS內存開發管理機制的應用

肖斯瑤

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

ios是蘋果公司的主流操作系統,在目前網絡發展的背景下,ios的開發一直是業界研究的熱點。本文主要針對ios內存開發管理機制的應用進行分析。

ios系統;內存開發管理機制;應用

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

1 內存管理中的所有權策略

任何對象的存在都不能離開其所有者單獨存在。如果沒有所有者,該對象就會被判斷為無效對象,被系統銷毀。為了明確對象的所有權義務,蘋果公司創建的編程環境Cocoa設立了一系列的判斷準則:

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

(2)不要只是獲得所有權卻不釋放,如果不再需要某個對象的所有權,要及時釋放。可以通過release或者autorelease來實現所有權的釋放。

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

2 保留計數機制

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

3 ios內存釋放的一般規則

(1)如果對象是通過copy、new等關鍵字創建的,并且其保留計數器值為1,則當再想使用該對象時,一定要向對象發送一條autorelease或release消息以便當該對象壽命結束時將其進行銷毀。

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

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

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

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

盛放自動釋放池的是一個一個的堆棧。棧頂存放的是新創建的自動釋放池,接收到autorelease消息的對象會被添加到棧頂的自動釋放池中,當釋放池被回收或者不能用時,就會被堆棧自動刪除。

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

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

(2)如果生成一個從屬線程,當線程開始執行,就必須創建自己自動釋放池,因為在線程內創建的對象并不會在函數結束后自動釋放。

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

5 內存管理中常見的錯誤

在這里主要介紹iPhone開發中內存管理常見的錯誤。

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

內存泄露。當對象的保留計數器值為1,并且在方法釋放的作用域內沒有對應的release時,對象就不會被自動釋放池釋放,最后導致泄露內存。

釋放沒有所有權的對象。如果釋放的是沒有所有權的對象,會發生過度釋放的錯誤。

6 結束語

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

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

[2]盛平,嚴冬,張德勤.基于IOS平臺的智能視頻系統客戶端設計與實現[J].軟件導刊,2015(07).

[3]段艷艷,趙啟升.基于IOS的O2O商務平臺設計與實現[J].泰州職業技術學院學報,2014(03).

[4]孫曉文.IOS與Android操作系統的優缺點比較[J].無線互聯科技,2013(12).

TN929.5

A

1004-7344(2016)36-0269-01

2016-11-2

猜你喜歡
管理機制程序管理
棗前期管理再好,后期管不好,前功盡棄
今日農業(2022年15期)2022-09-20 06:56:20
試論工程造價管理機制的完善與創新
建立有效的管理機制奠定堅實的人力資源基礎
工電道岔結合部聯合管理機制的探討
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
“這下管理創新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
人本管理在我國國企中的應用
現代企業(2015年8期)2015-02-28 18:54:47
主站蜘蛛池模板: 欧美在线一二区| 99热这里只有精品免费| www.99精品视频在线播放| V一区无码内射国产| 乱人伦中文视频在线观看免费| 亚洲欧洲天堂色AV| 国产精品蜜芽在线观看| 自拍亚洲欧美精品| 国内精品免费| 激情午夜婷婷| 毛片在线播放a| 亚洲另类第一页| 亚洲欧洲日韩综合| 污网站在线观看视频| 激情成人综合网| 久久青草视频| 久久婷婷综合色一区二区| 小13箩利洗澡无码视频免费网站| 国产无码制服丝袜| a毛片在线播放| 久久精品波多野结衣| 亚洲一区国色天香| 欧美亚洲一区二区三区在线| 欧美亚洲欧美| 免费人成又黄又爽的视频网站| 成人亚洲视频| 香蕉网久久| 色丁丁毛片在线观看| 色欲综合久久中文字幕网| 日本在线亚洲| 国产精品女在线观看| 99视频精品全国免费品| 再看日本中文字幕在线观看| jizz在线观看| 国产SUV精品一区二区6| 91精品免费久久久| 国产乱肥老妇精品视频| 最新亚洲人成无码网站欣赏网| 不卡网亚洲无码| 亚洲欧美另类久久久精品播放的| 午夜色综合| 波多野结衣亚洲一区| 亚洲中文久久精品无玛| 91麻豆精品视频| 狠狠ⅴ日韩v欧美v天堂| 无码精品国产dvd在线观看9久| 国产91丝袜| 青草视频免费在线观看| 99视频在线观看免费| 国产成人亚洲精品色欲AV| 日本人妻一区二区三区不卡影院| 国产三级国产精品国产普男人| 亚洲黄网视频| 99热这里都是国产精品| 伊人久久综在合线亚洲2019| 久久无码av一区二区三区| 综合网久久| 免费人成视网站在线不卡| 国产91在线|日本| 久久这里只精品国产99热8| A级毛片高清免费视频就| 2018日日摸夜夜添狠狠躁| 国产精品无码一区二区桃花视频| 国产美女在线观看| 久久午夜夜伦鲁鲁片不卡| 草草影院国产第一页| 四虎AV麻豆| 国产地址二永久伊甸园| 黄片一区二区三区| 伊人狠狠丁香婷婷综合色| yy6080理论大片一级久久| 成人字幕网视频在线观看| 九九香蕉视频| 99久久国产综合精品2023| 亚洲人成人伊人成综合网无码| 热热久久狠狠偷偷色男同| 特级aaaaaaaaa毛片免费视频| 日韩免费毛片视频| 青青操视频免费观看| 日本免费福利视频| 强奷白丝美女在线观看| 国产精品毛片一区视频播|