1、如果開始是可變的(nsmutablestring)-copy和mutablecopy之后都會(huì)產(chǎn)生新的對象棕硫,生成兩塊內(nèi)存。(深度拷貝,產(chǎn)生新對象)
如果開始是不可變的(string)-copy(不產(chǎn)生新對象祠斧,地址拷貝,指針拷貝胃珍,淺拷貝)-mutablecopy-(深度拷貝梁肿,產(chǎn)生新對象)
Xcode中大多數(shù)為淺拷貝!
2觅彰、對象的拷貝 copy會(huì)遵循NSCopying協(xié)議吩蔑,實(shí)現(xiàn)該協(xié)議的copyWithZone方法,此方法內(nèi)部聲明的也為copy填抬,沒有mutablecopy烛芬。
如果在@property中聲明為copy,則后面的變量為不可變的飒责;如果變量為可變的赘娄,則在@property中聲明為strong。
strong出來的變量宏蛉,賦值給strong變量的對象屬性改變遣臼,則此變量改變,為同一塊內(nèi)存拾并,沒有產(chǎn)生新的變量揍堰。copy出來的變量,為另一個(gè)新的對象嗅义,此變量的值不會(huì)隨著賦值給此變量的變量而改變屏歹。