Подтвердить что ты не робот

Элементы добавления NSArray

Мне нужно создать динамический NSArray, то есть я не знаю размер массива или какие элементы у него будет иметь массив. Элементы должны быть добавлены в массив динамически. Я посмотрел ссылку на NSArray. Существует метод, называемый arrayWithObjects, который должен использоваться во время инициализации самого массива. Но я не знаю, как добиться того, что мне нужно.

Мне нужно сделать что-то вроде следующего:

NSArray *stringArray = [[NSArray init] alloc] ;  
for (int i = 0; i < data.size; i++){  
    stringArray.at(i) = getData(i);
}
4b9b3361

Ответ 1

Если вы создаете NSArray, вы не сможете добавлять к нему элементы, так как он неизменен. Вы должны попробовать вместо этого использовать NSMutableArray.

Кроме того, вы перевернули порядок alloc и init. alloc создает экземпляр и init инициализирует его.

Код будет выглядеть примерно так (предполагая, что getData является глобальной функцией):

NSMutableArray *stringArray = [[NSMutableArray alloc] init];
for(int i=0; i< data.size; i++){
   [stringArray addObject:getData(i)];
}

Ответ 2

Вот еще один способ добавить объект в массив, если вы работаете с неизменяемым массивом. Что является потокобезопасным.

Вы можете использовать метод arrayByAddingObject. Несколько раз это намного лучше. Вот обсуждение: NSMutableArray vs NSArray, который лучше

Ответ 3

Преобразуйте NSArray в NSMutableArray, а затем вы можете динамически добавлять значения:

NSMutableArray *mutableStringArray = [stringArray mutableCopy];
[mutableStringArray addObject:@"theNewElement"];