iOS中copy有兩種copy和mutableCopy
1.copy
對于不可變對象的copy采用的是淺復(fù)制仗嗦,引用計(jì)數(shù)加1(其實(shí)這是編譯器進(jìn)行了優(yōu)化,既然原來的對象不可變禁漓,復(fù)制之后的對象也不可變那么就沒有必要在重新創(chuàng)建一個(gè)對象了)琼娘;對于可變對象copy采用的是復(fù)制阳堕,引用計(jì)數(shù)不變(原來的對象是可變的哩俭,現(xiàn)在要產(chǎn)生一個(gè)不可變的當(dāng)然得重新產(chǎn)生一個(gè)對象)
2.mutablecopy:
無論是可變對象還是不可變對象采用的都是深復(fù)制桦踊,引用計(jì)數(shù)不變(如果從一個(gè)不可變對象產(chǎn)生一個(gè)可變的對象自然不用說兩個(gè)對象絕對不一樣肯定是深復(fù)制绞蹦;如果從一個(gè)可變對象產(chǎn)生出另外一個(gè)可變對象力奋,那么其中一個(gè)對象改變自然不希望另外一個(gè)對象也改變,當(dāng)然是深復(fù)制)
3.可變對象
當(dāng)值發(fā)生改變幽七,那么地址也隨之發(fā)生改變景殷;
4.不可變對象
當(dāng)值發(fā)生了改變,內(nèi)容地址不發(fā)生變化澡屡;
5.引用計(jì)數(shù)
用于計(jì)算一個(gè)對象有幾個(gè)指針在引用(有幾個(gè)指針變量指向同一個(gè)內(nèi)存地址)