因為父類指針可以指向子類對象,使用copy目的是為了讓本對象的屬性不受外界的影響,使用copy無論是給我傳入一個可變對象還是不可變對象,我本身持有的都是一個不可變的副本。
如果我們使用的是strong 的話,那么這個屬性如果指向一個可變對象,可變對象在外部被修改的時候,會影響本身的屬性。
copy 所表達的所屬關系與strong 類似,但是copy設置方法并不保留新值。當屬性為NSString 時,因為傳遞給設置方法的新值有可能指向一個NSMutableString 類的實例。這個類是 NSString 的子類,此時若是不拷貝字符串,那么設置完屬性之后,字符串的值就可能會在對象不知道的情況下被更改。