iOS NSArray | NSMutableArray使用必看

一個(gè)已經(jīng)有內(nèi)容的可變數(shù)組: contentArray
需求: 創(chuàng)建一個(gè)新數(shù)組,內(nèi)容和contentArray相同.
方式一:
  NSArray *otherArray = contentArray;
方式二: 
  NSArray *otherArray = [NSArray arrayWithArray:contentArray];

雖然看上去兩種方式產(chǎn)生的otherArray的值相同,但如果[contentArray removeAllObjects]則:
方式一產(chǎn)生的otherArray內(nèi)容會跟隨contentArray一起變?yōu)榭?br> 方式二產(chǎn)生的otherArray內(nèi)容依然存在

為什么會出現(xiàn)這樣的問題呢?

方式一:
實(shí)際上是將`otherArray指針`指向了`contentArray指針`所指向的內(nèi)容,從而使得他們有了相同的值. 
但如果他們指向的內(nèi)容變化時(shí), `otherArray`和`contentArray`會一起變化
方式二:
創(chuàng)建`otherArray`的時(shí)候使用的方法`[NSArray arrayWithArray:contentArray]`,通過Apple文檔得知:
`Creates and returns an array containing the objects in another given array.`
可以明確的看出,用這種方式創(chuàng)建的數(shù)組是將`contentArray`中的內(nèi)容添加到了`otherArray`中,
這樣就使得`otherArray`中的每個(gè)對象都和`contentArray`相同,但兩者的地址卻不同,
從而不管哪一方數(shù)組變化(增加/減少),都不會影響到另一方.
需要注意的是:兩個(gè)數(shù)組中的對象地址是相同的,說明如果修改了對象的內(nèi)容,另一個(gè)數(shù)組中的內(nèi)容也會變化.
賦值圖.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 我們分手那天是3月7號,特別容易記因?yàn)樵龠^兩天就是我的生日。我沒有告訴她,因?yàn)槲也幌肽梦疑者@件事來要挾她留在我身...
    喝過半杯西冷茶閱讀 178評論 0 0
  • 送走了猴迎來了雞,又到了新的一年。 今年我們?nèi)一乩霞疫^年,一路上我們欣賞著沿途的風(fēng)景,感受著自駕的樂趣,用了...
    楊智凱閱讀 322評論 1 0
  • 從女兒房門前經(jīng)過時(shí),發(fā)現(xiàn)女兒的房間收拾的異常整齊。這太奇怪了。女兒15歲,追求時(shí)尚卻不愛整潔,房間一向凌亂不堪。 ...
    誒靜不天真閱讀 161評論 0 0
  • 結(jié)婚第二天,姐姐突然暈倒,送到醫(yī)院檢查,腎萎縮,其中一只腎衰竭,多少人勸姐夫,才結(jié)婚就是如此大病走為上策,姐...
    靜守流年_閱讀 156評論 0 0

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