NSString 用copy 与 strong之间的区别

1.当赋值对象为NSString时


copy1
NSString 用copy 与 strong之间的区别_第1张图片
copy2
copy3

--------------------------------------------------------------------------------------------

strong1
NSString 用copy 与 strong之间的区别_第2张图片
strong2
strong3

发现没有,当赋值对象B为NSString时,不管是copy,还是strong,此时A的地址都没有发生变化,所以此时strong与copy的作用是一样的,就是指针赋值.这里的copy也就是一个浅copy.


.当赋值对象为NSMutableString


copy1


NSString 用copy 与 strong之间的区别_第3张图片
copy2


copy3

-------------------------------------------------------------------------------------------


strong1


NSString 用copy 与 strong之间的区别_第4张图片
strong2



strong3

当用NSMutableString时,copy赋值没有发生变化(A与B的地址不一样),而strong发生了变化,说明copy是copy了一个对象,所以发生不变,而strong是进行了强引用,指针赋值(A与B的地址是一样的).

以上同样适用NSArray,NSDictionary

你可能感兴趣的:(NSString 用copy 与 strong之间的区别)