因?yàn)楦割愔羔樋梢灾赶蜃宇悓?duì)象,使用copy目的是為了讓本對(duì)象的屬性不受外界的影響,使用copy無(wú)論是給我傳入一個(gè)可變對(duì)象還是不可變對(duì)象,我本身持有的都是一個(gè)不可變的副本。 如果我們使用的是strong 的話,那么這個(gè)屬性如果指向一個(gè)可變對(duì)象,可變對(duì)象在外部被修改的時(shí)候,會(huì)影響本身的屬性。
copy 所表達(dá)的所屬關(guān)系與strong 類似,但是copy設(shè)置方法并不保留新值。當(dāng)屬性為NSString 時(shí),因?yàn)閭鬟f給設(shè)置方法的新值有可能指向一個(gè)NSMutableString 類的實(shí)例。這個(gè)類是 NSString 的子類,此時(shí)若是不拷貝字符串,那么設(shè)置完屬性之后,字符串的值就可能會(huì)在對(duì)象不知道的情況下被更改。