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

Как добавить значения в массив в Objective-C

Я делаю это:

for(int i=0;i>count;i++)
{
    NSArray *temp=[[NSArray alloc]initWIthObjects]i,nil];
    NSLog(@"%i",temp);
}

Он возвращает мне 0,1,2,3.... подсчет один за другим, но мне нужен массив с добавлением этих значений {0,1,2,3,4,5...}. Это не большая проблема, но я не могу ее найти. Я новичок в iPhone.

4b9b3361

Ответ 1

NSMutableArray *myArray = [NSMutableArray array];

for(int i = 0; i < 10; i++) {
   [myArray addObject:[NSNumber numberWithInt:i]];
}

NSLog(@"myArray:\n%@", myArray);

Ответ 2

Этот код не делает то, что вы хотите сделать по нескольким причинам:

  • NSArray не является "изменчивым" классом, то есть он не предназначен для модификации после его создания. Измененная версия NSMutableArray, которая позволит вам добавлять значения.

  • Вы не можете добавлять примитивы типа int в класс NSArray или NSMutableArray; они содержат только объекты. Класс NSNumber предназначен для этой ситуации.

  • Вы теряете память каждый раз, когда вы выделяете массив. Всегда соединяйте каждый вызов с alloc с помощью соответствующего вызова release или autorelease.

Код, который вы хотите, выглядит примерно так:

NSMutableArray* array = [[NSMutableArray alloc] init];
for (int i = 0; i < count; i++)
{
    NSNumber* number = [NSNumber numberWithInt:i]; // <-- autoreleased, so you don't need to release it yourself
    [array addObject:number];
    NSLog(@"%i", i);
}
...
[array release]; // Don't forget to release the object after you're done with it

Мой совет вам - прочитать Cocoa Руководство по основам, чтобы понять некоторые основы.

Ответ 3

Более короткий способ:

NSMutableArray *myArray = [NSMutableArray array];

for(int i = 0; i < 10; i++) {

   [myArray addObject:@(i)];
}

NSLog(@"myArray:\n%@", myArray);