我有一个包含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];
我需要做什么?我怎样才能检索对象的值而不是引用?
感谢您的帮助!
答案 0 :(得分:1)
基本上,您仍然在分配为名称和值分配的内存的引用,因此,它仍然指向相同的对象。在分配名称和aValues之前调用副本。
[playCopy setName:[name copy]];
[playCopy setAValues:[aValues copy]];