如果我有一个充满自定义对象的nsarray,我使用:
创建第二个数组NSArray *temp = [NSArray arrayWithArray:original];
然后使用原始数组中的对象的一些属性,然后决定回滚,然后我使用反向:
original = [NSArray arrayWithArray:temp];
我发现我在数组中更改的对象也影响了我的临时数组。我也尝试在我的自定义类上实现copyWithZone,并使用copyItems并没有帮助。我还应该尝试什么?
要清楚,为了使用copyWithZone,我将我的数组创建命令更改为:
NSArray *temp = [[NSArray alloc] initWithArray:original copyItems:YES];
我的copyWithZone:
-(id)copyWithZone:(NSZone *)zone{
CustomObject *ret = [[CustomObject allocWithZone: zone] init];
//copy properties
return ret;
}