NSArray & NSMutableArray

簡介

NSArray創(chuàng)建之后會在堆中建立一塊區(qū)域A,然后指針MoMo指向這塊區(qū)域A,但是這塊區(qū)域的大小是已經(jīng)確定不能更改的了。但是我們還是能夠看到有setobject的方法,可以向里面添加改變值。這是因為會在堆中在新建一個內(nèi)存區(qū)域B,把原來堆內(nèi)存A中的數(shù)據(jù)復(fù)制到這個堆區(qū)域B中,然后在這個新的區(qū)域B里面添加你setobject進(jìn)去的值,并把棧中的指針對象MoMo指向B。這樣就是說原來A的對內(nèi)存值沒有發(fā)生變化,但是你的指針MoMo在指向新的內(nèi)存區(qū)域B之后指針對應(yīng)的值已經(jīng)變化了。因為B中有A的復(fù)制內(nèi)容,還有最后你新添加進(jìn)去(setobject)的值。

NSMutableArray就是另外一種方式了。說他內(nèi)容可變,就是說原來的堆中內(nèi)存A還是A,但是你添加的值(setobject)直接存放在A中你需要的位置如末尾,全過程中沒有B的存在了。顯然這樣的速度會更快。

用法如下

http://www.tuicool.com/articles/nIrEJv

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 307、setValue:forKey和setObject:forKey的區(qū)別是什么? 答:1, setObjec...
    AlanGe閱讀 1,708評論 0 1
  • 一、深copy、淺copy 淺拷貝是指源對象與拷貝對象共用一份實體,僅僅是引用的變量不同(名稱不同)。對其中任何一...
    不會游泳De魚閱讀 11,738評論 6 7
  • /---------------------------創(chuàng)建數(shù)組-------------------------...
    DVWang閱讀 656評論 0 0
  • 顧名思義,需要你自己投入精力和時間被雇傭來轉(zhuǎn)變成錢,你的老板請你幫他做事,然后他完成了一定的目的,賺了大筆的錢,而...
    最大化閱讀 260評論 0 0
  • 01 一大早,趕著去稅務(wù)局辦事。站在路邊打不到出租車,只能拼車。 因為路途遙遠(yuǎn),...
    陶壹一閱讀 1,129評論 5 4

友情鏈接更多精彩內(nèi)容