目标C - 复制NSArray并不真正复制对象?

时间:2012-10-23 16:54:44

标签: objective-c copy nsarray

复制数组会创建数组的新实例,但仍会从旧数组中引用数组中的对象。这不是一个错误吗?

数组中的项目:项目:0xa623800

新阵列中的项目:项目:0xa623800

po [self selectedItems]
(NSMutableArray *) $1 = 0x0a21f1a0 <__NSArrayM 0xa21f1a0>(
<Item: 0xa623800>
)

po [[self selectedItems] copy]
(id) $2 = 0x0b854fd0 <__NSArrayI 0xb854fd0>(
<Item: 0xa623800>
)

1 个答案:

答案 0 :(得分:4)

它确实复制了数组,但没有复制数组中的项目。这是一份深刻的副本。我想你可能需要-initWithArray:copyItems: