目标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>
)

它确实复制了数组,而不是数组中的项目。那是一个深层副本。我认为您可能想要-initWithArray:copyItems:

最新更新