私の問題は、オブジェクトを含む配列をコピーするときです。コピーした配列を変更すると、元の配列も変更されるようです。以下は私のコードの簡略版です。
私はオブジェクトの配列を持っています
@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];
}
ルート 1 を amTimes にコピーするにはどうすればよいですか。オブジェクトを AM 時間に変更しても、ルート 1 では変更されません。