Хорошо, вот еще один вариант. Надеюсь, на этот раз я понимаю вашу проблему лучше. forin
имеет проблемы при попытке изменить его коллекцию, поэтому, возможно, это поможет.
Изменить это:
for (NSString *anImagePath in arryList) {
anImagePath = [NSString stringWithFormat:@"%@/%@",docPath,anImagePath];
К этому:
for (NSString *anImagePath in imagesArr) {
[arrayList setObject:[NSString stringWithFormat:@"%@/%@",docPath,anImagePath]
atIndex:[imagesArr indexOfObject:anImagePath]];
Таким образом, мы циклически перебираем копию модифицируемого массива, а не сам массив, который мы модифицируем. Однако это довольно плохой код (создающий arrayList
как копию imagesArr
и затем уничтожающий все его объекты), поэтому мы могли бы попробовать следующее:
Изменить это:
arrayList = [[NSMutableArray alloc] initWithArray:[imagesArr copy]];
К этому:
arrayList = [[NSMutableArray alloc] init];
Затем в нашем цикле forin
измените это:
for (NSString *anImagePath in imagesArr) {
[arrayList setObject:[NSString stringWithFormat:@"%@/%@",docPath,anImagePath]
atIndex:[imagesArr indexOfObject:anImagePath]];
На это:
for (NSString *anImagePath in imagesArr) {
[arrayList addObject:[NSString stringWithFormat:@"%@/%@",docPath,anImagePath]];
Надеюсь, это работает лучше!