Элементы добавления NSArray
Мне нужно создать динамический NSArray, то есть я не знаю размер массива или какие элементы у него будет иметь массив. Элементы должны быть добавлены в массив динамически. Я посмотрел ссылку на NSArray. Существует метод, называемый arrayWithObjects, который должен использоваться во время инициализации самого массива. Но я не знаю, как добиться того, что мне нужно.
Мне нужно сделать что-то вроде следующего:
NSArray *stringArray = [[NSArray init] alloc] ;
for (int i = 0; i < data.size; i++){
stringArray.at(i) = getData(i);
}
Ответы
Ответ 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"];