Все еще новичок в Objective-C, и я запутался в перечислении ...
Допустим, у меня есть NSArray из 8 объектов "Car", и у каждого из них свойство "paintColor" установлено в "красный. Я хочу перечислить через массив и установить каждое свойство Car.paintColor на "синий". Как мне это сделать?
for (Car *car in myArray){
car.paintColor = @"blue";
}
Но тогда, если я сделаю
Car *testCar = [myArray objectAtIndex:2];
NSLog(@"The car color for 3rd object in myArray is %@", testCar.color);
Я все еще получаю «красный». Так что, кажется, перечисление просто создает временный объект, но не изменяет фактический объект, который содержится в массиве.
Как правильно сделать то, что я пытаюсьчтобы сделать? У меня есть много ситуаций, когда я хочу перечислить через массив, но на самом деле изменяет элементы, которые находятся внутри массива
Спасибо
- EDIT
Хорошо,спасибо за эту информацию ... вы можете объяснить, почему это не работает?
У меня есть NSArray с именем "carsArray", настроенный как свойство, которое содержит три строковых объекта NSMutable ("Buick", "Bronco",«Кадиллак»).
Я тогда делаю
for (NSMutableString *car in myArray) {
car = [NSMutableString stringWithFormat:@"test"];
}
NSMutableString *temp = [myArray objectAtIndex:2];
NSLog(@"third car is %@", temp);
NSLog говорит "Кадиллак".Разве это не должно быть "тест"?