问NSString属性声明中的copy和retain具体区别

问NSString属性声明中的copy和retain具体区别

copy是将源对象release然后新对象copy在付给源对象

retain是将源对象release然后新对象retain再付给源对象

根本区别就是对象进行深拷贝时copy要开辟新的存储空间,浅拷贝时效果相同。引用计数方面retain是源对象引用计数加1,copy当

是浅复制时源对象引用计数加1,深复制时源对象引用计数不变,新对象引用计数加1.

NSString*str =@"hello";

// copy原模原样的复制

NSMutableString*strM = [strcopy];

// [strM appendString:@" 123"];是不能运行的 因为copy只是原样复制的,,内存地址是一样的。并不能认为换了类型指向了他,他就是这个东西

深复制:要变

浅复制:不变

喜欢真实的人,要做真实的人,所以从来不会想要刻意模仿任何人。

问NSString属性声明中的copy和retain具体区别

相关文章:

你感兴趣的文章:

标签云: