object-C 內(nèi)存管理

程序內(nèi)存使用情況:

object-C可執(zhí)行的程序是由(可執(zhí)行)代碼锻全、初始化代碼和未初始化的程序數(shù)據(jù)眯杏、鏈接信息、重定位信息懒震、舉報(bào)數(shù)據(jù)和動態(tài)數(shù)據(jù)構(gòu)成罩息。
1、程序數(shù)據(jù)包括以靜態(tài)方式聲明的變量和程序常量(即在程序編譯時(shí)在代碼中設(shè)置的常數(shù))个扰。
2瓷炮、可執(zhí)行代碼、程序數(shù)據(jù)已經(jīng)鏈接與重定位信息會議靜態(tài)方式被分配內(nèi)存递宅,并在程序的聲明周期中一直存在娘香。
3、局部(自動)數(shù)據(jù)在語句中聲明并且僅在該語句塊中有效办龄,當(dāng)該語句塊執(zhí)行后局部數(shù)據(jù)不會繼續(xù)存在

{
 int a=1;
 NSLog(@"%d",a);
}

a為局部變量烘绽,只存在于這個(gè)語句塊中,執(zhí)行完語句將不會存在俐填。
自動數(shù)據(jù)被存儲在程序的棧中安接,程序棧通常是執(zhí)行程序、線程前舍得尺寸的內(nèi)存段英融。棧用于存儲局部變量和調(diào)用方式盏檐、函數(shù)上下文數(shù)據(jù)包括方法的輸入?yún)?shù)呀打、返回值,已經(jīng)調(diào)用完方法后繼續(xù)執(zhí)行程序的代碼地址糯笙。操作系統(tǒng)會自動管理哲學(xué)內(nèi)存贬丛,這些數(shù)據(jù)會獲得棧中的內(nèi)存,而且分配給這些書的內(nèi)存會在他們失效和被釋放给涕。

在運(yùn)行時(shí)中通過NSobject類的alloc方法創(chuàng)建的對象存儲在動態(tài)分配的內(nèi)存及堆內(nèi)存中豺憔。以動態(tài)方式創(chuàng)建對象就意味著需要進(jìn)行內(nèi)存管理,因?yàn)樵诙褍?nèi)存中創(chuàng)建的對象永遠(yuǎn)不會超出其作用范圍够庙。(這就是為什么誰創(chuàng)建誰release)恭应。

程序的棧尺寸(通常)是在程序啟動時(shí)確定的,會自動由系統(tǒng)管理耘眨。另一方面昼榛,OC中對象在程序執(zhí)行時(shí)動態(tài)創(chuàng)建的,不會自動由系統(tǒng)收回剔难,因此需要程序必須進(jìn)行內(nèi)存管理胆屿,以確保通過恰當(dāng)?shù)姆绞绞褂孟到y(tǒng)內(nèi)存,不進(jìn)行內(nèi)存管理或錯(cuò)誤內(nèi)存管理會導(dǎo)致以下結(jié)果:

內(nèi)存泄露:

如果程序沒有釋放不在使用的的對象就會出現(xiàn)該問題偶宫。如果程序誒呦使用為其分配的內(nèi)存非迹,就會浪費(fèi)內(nèi)存資源;如果系統(tǒng)機(jī)械為程序分配內(nèi)存并沒有是非這些內(nèi)存纯趋,程序最終會耗盡系統(tǒng)內(nèi)存憎兽。

懸掛指針:

如果程序釋放了仍在使用的對象(野指針),就會到賬該問題吵冒。如果將來的程序嘗試訪問這些對象就會出現(xiàn)程序錯(cuò)誤纯命。

OC的內(nèi)存管理是通過引用計(jì)數(shù)實(shí)現(xiàn)的,引用計(jì)數(shù)是一種通過對象唯一引用痹栖,確定對象是否正在被使用的技術(shù)亿汞。如果對象的引用計(jì)數(shù)降到了0,對象就會被視為不在有用结耀,而且運(yùn)行時(shí)系統(tǒng)會釋放它的內(nèi)存留夜。

ARC限制

ARC限制.png

ARC生命周期限定符

ARC生命周期限定符.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市图甜,隨后出現(xiàn)的幾起案子碍粥,更是在濱河造成了極大的恐慌,老刑警劉巖黑毅,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嚼摩,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)枕面,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門愿卒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人潮秘,你說我怎么就攤上這事琼开。” “怎么了枕荞?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵柜候,是天一觀的道長。 經(jīng)常有香客問我躏精,道長渣刷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任矗烛,我火速辦了婚禮辅柴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞭吃。我一直安慰自己碌嘀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布虱而。 她就那樣靜靜地躺著筏餐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪牡拇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天穆律,我揣著相機(jī)與錄音惠呼,去河邊找鬼。 笑死峦耘,一個(gè)胖子當(dāng)著我的面吹牛剔蹋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辅髓,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼泣崩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洛口?” 一聲冷哼從身側(cè)響起矫付,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎第焰,沒想到半個(gè)月后买优,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年杀赢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烘跺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脂崔,死狀恐怖滤淳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情砌左,我是刑警寧澤脖咐,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站绊困,受9級特大地震影響文搂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秤朗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一煤蹭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧取视,春花似錦硝皂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至折欠,卻和暖如春贝或,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锐秦。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工咪奖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人酱床。 一個(gè)月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓羊赵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親扇谣。 傳聞我的和親對象是個(gè)殘疾皇子昧捷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 1. 基礎(chǔ)知識 1.1、 基本概念罐寨、 功能 馮諾伊曼體系結(jié)構(gòu)1靡挥、計(jì)算機(jī)處理的數(shù)據(jù)和指令一律用二進(jìn)制數(shù)表示2、順序執(zhí)...
    yunpiao閱讀 5,269評論 1 22
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,092評論 1 32
  • 一衩茸、引用計(jì)數(shù)器和對象所有權(quán)的基本概念 1芹血、引用計(jì)數(shù)器 每個(gè)對象都會有一個(gè)引用計(jì)數(shù)器贮泞,當(dāng)引用計(jì)數(shù)器為0是,系統(tǒng)就會將...
    空白Null閱讀 345評論 0 1
  • 用功能式把應(yīng)用搭建起來 在看了文件結(jié)構(gòu)后幔烛,要把項(xiàng)目的框體搭建起來啃擦。 以下是各文件內(nèi)容 datatube/datat...
    chan2017閱讀 132評論 0 0
  • Python 第一步: 第二步: 第三步: 第四步: 第五步: 第六步: 第七步安裝pip
    Louis_Duan閱讀 1,386評論 0 0