objective-c 里面的copy 是浅拷贝还是深拷贝,为什么?
类似于const的对象(如NSString等)copy内部实现其实就是retain。如
- NSString* str1 = @"abcde"; - NSString* str2 = [str1 copy];
执行后,str1==str2,其实就是同内存,只是retaincount加一。如果:
- NSMutableString* str1 = .. - NSString* str2 = [str1 copy];
执行后 str1 != str2; 这里的copy是真是的copy。
欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。 温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。