iOS 深復制淺復制
阿新 • • 發佈:2019-05-12
mut 是否 ear bsp 存儲 測試 ios with nsobject
淺復制和深復制是針對Copy而言的,mutableCopy都是深復制。
copy復制完成之後,都是不可變的,無論被復制對象是否可變。 mutableCopy 賦值完成之後,是可變對象的,都是深復制,內部是可以添加數據的 (經過測試發現,對NSArray進行MutableCopy,實際創建的結果是深復制後的MutableArray類型,但是內部的對象默認是淺復制指向原來NSArray內部的對象地址,但是如果對內部對象做修改則會開辟新的內存,變為深復制而不會出現修改原來內存地址數據的問題) 淺復制:不可變對象 + Copy 深復制:可變對象 + Copy and mutableCopy 的所有情況
淺復制:復制的對象指向被復制對象的內存,並沒有開辟新內存
深復制:復制的對象開辟新內存,是一塊新的存儲空間。
淺復制和深復制是針對Copy而言的,mutableCopy都是深復制。
copy復制完成之後,都是不可變的,無論被復制對象是否可變。 mutableCopy 賦值完成之後,是可變對象的,都是深復制,內部是可以添加數據的 (經過測試發現,對NSArray進行MutableCopy,實際創建的結果是深復制後的MutableArray類型,但是內部的對象默認是淺復制指向原來NSArray內部的對象地址,但是如果對內部對象做修改則會開辟新的內存,變為深復制而不會出現修改原來內存地址數據的問題) 淺復制:不可變對象 + Copy 深復制:可變對象 + Copy and mutableCopy 的所有情況
iOS 深復制淺復制