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很好的觀察 –