- copy: 建立一個索引計數為1的對象,然後釋放舊對象
- retain:釋放舊的對象,将舊對象的值賦予輸入對象,再提高輸入對象的索引計數為1
那上面的是什麼意思呢?
Copy其實是建立了一個相同的對象,而retain不是:
比如一個NSString對象,位址為0×1111,内容為@”STR”
Copy到另外一個NSString之 後,位址為0×2222,内容相同,新的對象retain為1, 舊有對象沒有變化
retain到另外一個NSString之 後,位址相同(建立一個指針,指針拷貝),内容當然相同,這個對象的retain值+1
也就是說,retain是指針拷貝,copy是内容拷貝。