我的问题是当我复制带有对象的数组时,似乎如果我更改复制的数组,原始数组也会更改。下面是我的代码的简化版本。
我有一个对象数组
@interface TimesViewController (){
NSMutableArray *route1;
}
我在 ViewDidLoad 方法中填充这些对象
route1 = [[NSMutableArray alloc] init];
while (sqlite3_step(statement) == SQLITE_ROW) {
StopsOnRoutes *stopOnRoutes = [[StopsOnRoutes alloc] init];
[stopOnRoutes setStart_time:p_time];
[stopOnRoutes setStart_route_id:p_route];
[stopOnRoutes setStart_stop_id:p_stop];
[stopOnRoutes setStop_time:c_time];
[stopOnRoutes setStop_route_id:c_route];
[stopOnRoutes setStop_stop_id:c_stop];
[stopOnRoutes calc];
[route1 addObject:stopOnRoutes];
}
但是当我尝试复制 route1 并进行一些更改时,它们在 route1 和 amTimes 中都发生了变化
NSMutableArray *amTimes = [[NSMutableArray alloc] init];
[amTimes addObjectsFromArray:route1];
for(int i = 0; i<amTimes.count; i++){
[[amTimes objectAtIndex:i] setStop_time:[[amTimes objectAtIndex:i] stop_time]-86400];
[[amTimes objectAtIndex:i] setStart_time:[[amTimes objectAtIndex:i] start_time]-86400];
}
如何将 route1 复制到 amTimes,所以如果我在 AM 时间更改对象,它不会在 route1 中更改。