copy与retain的区别: 1) copy:建立一个索引计数为1的对象,然后释放旧对象。 retain:释放旧对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1。 2) copy是创建一个新对象,retain是创建一个指针,引用对象计数加1。 3) copy属性表示两个对象内容相同,新的对象retain为1,与旧有对象的引用计数无关,旧有对象没有变化。copy减少对象对上下文的依赖。 retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值加1。也就是说retain是指针拷贝,copy是内容拷贝。
|