Copying an array would create a new instance of the array, but the objects in the array are still being referenced from the old array. Isn’t this a bug?
Item in array: Item: 0xa623800
Item in new array: Item: 0xa623800
po [self selectedItems]
(NSMutableArray *) $1 = 0x0a21f1a0 <__NSArrayM 0xa21f1a0>(
<Item: 0xa623800>
)
po [[self selectedItems] copy]
(id) $2 = 0x0b854fd0 <__NSArrayI 0xb854fd0>(
<Item: 0xa623800>
)
It did copy the array, but not the items in the array. That is a deep copy. I think you may want
-initWithArray:copyItems:.