Как добавить объекты в NSArray используя цикл for? - PullRequest
20 голосов
/ 21 октября 2011

Я хочу добавить [NSDecimalNumber numberWithInt:i] в массив, используя цикл for.

Это жестко закодировано:

 NSArray *customTickLocations = [NSArray arrayWithObjects: [NSDecimalNumber numberWithInt:1],[NSDecimalNumber numberWithInt:2],[NSDecimalNumber numberWithInt:3],[NSDecimalNumber numberWithInt:4],[NSDecimalNumber numberWithInt:5],[NSDecimalNumber numberWithInt:6],[NSDecimalNumber numberWithInt:7],[NSDecimalNumber numberWithInt:8],[NSDecimalNumber numberWithInt:9],[NSDecimalNumber numberWithInt:10],[NSDecimalNumber numberWithInt:11],[NSDecimalNumber numberWithInt:12],nil];

Я хочу вот так, но я могу добавить только один объект ...

for (int i=0; i<totalImagesOnXaxis; i++)
{
    customTickLocations = [NSArray arrayWithObject:[NSDecimalNumber numberWithInt:i]];
}

Пожалуйста, помогите мне выйти из этого, Заранее спасибо, Мадан

Ответы [ 7 ]

44 голосов
/ 21 октября 2011

NSArray является неизменным . Используйте изменяемую версию, NSMutableArray .

20 голосов
/ 21 октября 2011
NSMutableArray * customTickLocations = [NSMutableArray new];
for (int idx = 0; idx < 12; ++idx) {
    [customTickLocations addObject:[NSDecimalNumber numberWithInt:idx]];
}

...
9 голосов
/ 24 мая 2013

вы не можете добавлять объекты во время выполнения в NSArray. Для добавления или удаления объектов во время выполнения вы должны использовать NSMutableArray.

NSMutableArray *mutableArray=[[NSMutableArray alloc] init];
for (int i=0; i<10; i++) {
    [mutableArray addObject:[NSDecimalNumber numberWithInt:i]];
}
5 голосов
/ 21 октября 2011
NSMutableArray * customTickLocations = [[NSMutableArray alloc] init];
for(int i = 0; i<WhateverNoYouWant;i++){
NSDecimalNumber * x = [NSDecimalNumber numberWithInt:i]
[customTickLocations addObject:x]

    }
5 голосов
/ 21 октября 2011
NSMutableArray *customTickLocations = [NSMutableArray array];
for (int i=0; i<totalImagesOnXaxis; i++)
{
    [customTickLocations addObject:[NSDecimalNumber numberWithInt:i]];
}

Класс NSMutableArray объявляет программный интерфейс к объектам, которые управляют изменяемым массивом объектов. Этот класс добавляет операции вставки и удаления к базовому поведению обработки массива, унаследованному от NSArray

Ссылка на класс NSMutableArray

4 голосов
/ 29 мая 2015

Я обнаружил, что использование этой техники - отличный способ легко добавить еще несколько элементов в NSArray, это был ответ, который я искал, когда пришел в эту ветку, поэтому я публикую его, поскольку это отличное простое дополнение.

Если я хочу добавить новый массив в мой текущий массив

currentArray = [currentArray arrayByAddingObjectsFromArray: newArray]; 
1 голос
/ 13 сентября 2016

NSArray добавить объект, как это:

NSArray *arr = @["1","2","3","4"];

Я думаю, NSArray не может addObject, как NSMutableArray.Вы должны попробовать это:

NSMutableArray *mulArr = [NSMutableArray new];
[mulArr addObject:[NSDecimalNumber numberWithInt:number]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...