Прежде всего, если вы хотите изменить объект, на который указывает массив, вы должны изменить массив, а не указатель, который дает быстрое перечисление.Во-вторых, вы не можете изменить массив во время быстрого перечисления ( хорошо, вы можете, но это взорвется на вашем лице).Я предлагаю вам сделать копию массива перед перечислением, а затем изменить его во время перечисления, выбрасывая исходный массив после завершения перечисления.Например:
tempArray = [self.carsArray mutableCopy];
for (Car * car in self.carsArray)
{
if (car.name == nil){
[tempArray replaceObjectAtIndex:[self.carsArray indexOfObject:car] withObject:[self getrandomCar]];
}
}
[self.carsArray release];
self.carsArray = [tempArray copy];
[tempArray release];
tempArray = nil;
Это не так красиво, как вы могли бы поверить в быстром перечислении, но это то, что нужно сделать, если вы хотите изменить массив при перечислении через него.