1
复制数组将创建数组的新实例,但数组中的对象仍旧从旧数组中引用。这不是一个错误?目标C - 复制NSArray不会真的复制对象吗?
项目在数组:项目:在新的数组0xa623800
项目:项目:0xa623800
po [self selectedItems]
(NSMutableArray *) $1 = 0x0a21f1a0 <__NSArrayM 0xa21f1a0>(
<Item: 0xa623800>
)
po [[self selectedItems] copy]
(id) $2 = 0x0b854fd0 <__NSArrayI 0xb854fd0>(
<Item: 0xa623800>
)
正确; 'copy'是一个浅拷贝。请注意'initWithArray:copyItems:'仍然很浅;如果你的数组充满了数组,它将不会深入复制那些数组中的项目。实际上,深度复制实际上很难做到。 – bbum
@bbum很好的观察 –