Вопрос

У меня есть цикл for . Внутри этого цикла я хочу заполнить NSArray некоторыми объектами. Но я не вижу никакого метода, который позволил бы мне сделать это. Я заранее знаю, сколько там предметов. Я хочу избежать NSMutableArray , так как некоторые люди говорили мне, что это очень большие накладные расходы и снижение производительности по сравнению с NSArray .

У меня есть что-то вроде этого:

NSArray *returnArray = [[NSArray alloc] init];
for (imageName in imageArray) {
    UIImage *image = [UIImage imageNamed:imageName];
    //Now, here I'd like to add that image to the array...
}

Я посмотрел в документации по NSArray , но как мне указать, сколько там будет элементов? Или я действительно должен использовать NSMutableArray для этого?

Это было полезно?

Решение

Да, вам нужно использовать NSMutableArray :

int count = [imageArray count];
NSMutableArray *returnArray = [[NSMutableArray alloc] initWithCapacity:count];
for (imageName in imageArray) {
    UIImage *image = [UIImage imageNamed:imageName];
    [returnArray addObject: image];
    ...
}

РЕДАКТИРОВАТЬ - объявление исправлено

scroll top