IOS MAC 開發之深拷貝與淺拷貝

2021-07-03 14:59:43 字數 373 閱讀 7653

因需求需要,工程裡乙個介面上有兩個nsoutlineview,乙個作為case的集合列出常用的一些資料,乙個作為生成的資料。即通過case集合的outline上資料,通過新增或拖拽生成另個outline上資料。

在新增資料到sourceoutlineview上時,雖然資料是顯示到檢視上,當新增多個相同專案時,修改乙個專案資料,其他相同專案也跟著修改,由此才發現,這些資料都是引用同個位址的,修改的原資料,其他引用也跟著變。

由此想到深拷貝與淺拷貝

查閱,參考,銘記:

關於copywithzone 實現拷貝 及copy metablecopy

ios開發之深拷貝與淺拷貝(mutablecopy與copy)詳解

copywithzone詳解

js 淺拷貝直接賦值 js的賦值與淺拷貝 深拷貝

昨天翻了下陣列api,看到concat和slice方法,突然想到這個兩個方法是淺拷貝還是深拷貝,結果陷入了死胡同,為什麼mdn文件說是淺拷貝,但進行簡單的操作為什麼能複製成功啊,糾結半天後才弄清原由,原來我一直把賦值和深淺拷貝搞混了。首先不要把引用型別的賦值歸結為淺拷貝,深拷貝和淺拷貝只針對像 ob...

vue物件深拷貝 vue陷阱 深拷貝vs淺拷貝

案例重現 看下面的乙個例子 data this.info m this.info.attr1 8 console.log m 這是vue的部分 我們猜測m會輸出什麼,你會驚奇的發現m會和this.info繫結,也就是對this.info.attr1的修改,會導致m的值變化,控制台輸出的結果是 att...

前端的深拷貝和淺拷貝 前端面試 深拷貝和淺拷貝

面試題目 如何實現對乙個陣列或物件的淺拷貝和深拷貝?wtf,複製還分兩種,第一次遇到這種問題的時候很是無語呢,先來看看一般的答案的理解。淺拷貝是只拷貝一層,深層次的物件級別就只拷貝引用。深拷貝是拷貝多層,每一級別的資料都拷貝出來。也就是說,基本資料型別其實不存在深淺拷貝的問題,只有物件和陣列才存在深...