NSArray與NSMutableArray的區別

一直對ios裏面的NSArray,NSMutableArray內容能更改和不能更改感到模糊,網上也找不到詳細的說明,思考了一下,覺得可以用java裏面的知識來解決!


    情況其實是這樣的:NSArray創建之後會在堆中建立一塊區域A,然後指針MoMo指向這塊區域A,但是這塊區域的大小是已經確定不能更改的了。但是我們還是能夠看到有setobject的方法,可以向裏面添加改變值。這是因爲會在堆中在新建一個內存區域B,把原來堆內存A中的數據複製到這個堆區域B中,然後在這個新的區域B裏面添加你setobject進去的值,並把棧中的指針對象MoMo指向B。這樣就是說原來A的對內存值沒有發生變化,但是你的指針MoMo在指向新的內存區域B之後指針對應的值已經變化了。因爲B中有A的複製內容,還有最後你新添加進去(setobject)的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章