0

我有一个包含 NSObject 的 NSMutableArray。我想复制它,但是当我修改原始数组时,副本也是。我试图像这样实现copyWithZone:

-(id) copyWithZone: (NSZone *) zone

{

Play *playCopy = [[Play allocWithZone: zone] init];

[playCopy setName:name];

[playCopy setAValues:aValues];

return playCopy;

}

我在 viewController 中调用这个函数:

NSMutableArray *aTmpPlay = [[NSMutableArray alloc] initWithArray:aPlays copyItems:YES];

我需要做什么 ?我如何才能检索对象的值而不是引用?

谢谢你的帮助 !

4

1 回答 1

1

本质上,您仍在分配为名称和值分配的内存的引用,因此,它仍然指向相同的对象。在分配名称和 aValues 之前调用 copy。

[playCopy setName:[name copy]];
[playCopy setAValues:[aValues copy]];
于 2012-07-27T15:44:13.110 回答