1.当赋值对象为NSString时
![](https://img.haomeiwen.com/i7269078/c4830c9929d4421f.png)
![](https://img.haomeiwen.com/i7269078/128637ea74b87d03.png)
![](https://img.haomeiwen.com/i7269078/1ea4d53fb5bc2258.png)
--------------------------------------------------------------------------------------------
![](https://img.haomeiwen.com/i7269078/891ab148cc43eff4.png)
![](https://img.haomeiwen.com/i7269078/84c4837540363131.png)
![](https://img.haomeiwen.com/i7269078/f87514cb44738a24.png)
发现没有,当赋值对象B为NSString时,不管是copy,还是strong,此时A的地址都没有发生变化,所以此时strong与copy的作用是一样的,就是指针赋值.这里的copy也就是一个浅copy.
.当赋值对象为NSMutableString
![](https://img.haomeiwen.com/i7269078/10e4bbef39f2fbf7.png)
![](https://img.haomeiwen.com/i7269078/12dc05694dad51d3.png)
![](https://img.haomeiwen.com/i7269078/e2d198a20c13caf0.png)
-------------------------------------------------------------------------------------------
![](https://img.haomeiwen.com/i7269078/66c5f74310a6769b.png)
![](https://img.haomeiwen.com/i7269078/0b6ba0744869862d.png)
![](https://img.haomeiwen.com/i7269078/62f591a6cbcf8b73.png)
当用NSMutableString时,copy赋值没有发生变化(A与B的地址不一样),而strong发生了变化,说明copy是copy了一个对象,所以发生不变,而strong是进行了强引用,指针赋值(A与B的地址是一样的).
以上同样适用NSArray,NSDictionary
网友评论