Objective c 目标C-复制NSArray不';你真的不能复制这些东西吗?

Objective c 目标C-复制NSArray不';你真的不能复制这些东西吗?,objective-c,copy,nsarray,Objective C,Copy,Nsarray,复制数组将创建一个新的数组实例,但数组中的对象仍从旧数组中引用。这不是一只虫子吗 数组中的项:项:0xa623800 po [self selectedItems] (NSMutableArray *) $1 = 0x0a21f1a0 <__NSArrayM 0xa21f1a0>( <Item: 0xa623800> ) po [[self selectedItems] copy] (id) $2 = 0x0b854fd0 <__NSArrayI 0xb854fd

复制数组将创建一个新的数组实例,但数组中的对象仍从旧数组中引用。这不是一只虫子吗

数组中的项:项:0xa623800

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

po [[self selectedItems] copy]
(id) $2 = 0x0b854fd0 <__NSArrayI 0xb854fd0>(
<Item: 0xa623800>
)
新数组中的项:项:0xa623800

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

po [[self selectedItems] copy]
(id) $2 = 0x0b854fd0 <__NSArrayI 0xb854fd0>(
<Item: 0xa623800>
)
po[自选编辑]
(NSMutableArray*)$1=0x0a21f1a0(
)
采购订单[[self-selectedItems]副本]
(id)$2=0x0b854fd0(
)

它确实复制了数组,但没有复制数组中的项。那是一份深度拷贝。我想您可能需要。

它确实复制了数组,但没有复制数组中的项目。那是一份深度拷贝。我想你可能想要。

正确<代码>复制是浅层复制。请注意,
initWithArray:copyItems:
仍然很浅;如果您的数组充满了数组,它将不会深入复制这些数组中的项。一般来说,深度复制确实很难做到<代码>复制是浅层复制。请注意,
initWithArray:copyItems:
仍然很浅;如果您的数组充满了数组,它将不会深入复制这些数组中的项。一般来说,深度复制实际上很难做到。