关于COPY(深浅拷贝)

liugy Objective-C语言应用... 最后由 极客学院-anglexjq 于2015年07月21日回复

  • 1 回答
  • 1.5k 浏览

在网上看到一些关于copy拷贝的文章有很大的疑惑,希望老师们能解答下

1、@property声明的NSString或NSArray,经常使用copy

      网上说由于使用copy表示拥有不同的内存空间,存放的时同样的内容,对一处的修改不会影响到另一处。

2、[xxx copy]浅复制:在执行复制操作时,对于对象中每一层(对象中包含的对象,例如说属性是某个对象类型)复制都是指针复制(如果从引用计数器角度出发,那么每层对象的引用计数器都会加1)---(共享内存么)?。

疑惑:1中说道只要使用copy关键字就表示拥有不同的内存空间是否可以理解为重新开辟内存空间互补干涉修改一处不会影响另外一处。

2 中说的copy是浅复制、复制的都是指针,那么我可以是否理解为

共享一个内存空间,只要修改某一处 其他处是否也会修改。

这些都是在网上看到的,所以就有了点疑惑、一个说复制指针 我理解是修改一处其他就也改变(共享内存),但是1中又说重新开辟空间(不共享内存),感觉互相矛盾了。

小弟不才,可能表达不是很明白。。 小弟也刚学Objective-c不到一个月...希望各位大大,老师们解惑...