Ответ 1
NSMutableArray *myArray = [NSMutableArray array];
for(int i = 0; i < 10; i++) {
[myArray addObject:[NSNumber numberWithInt:i]];
}
NSLog(@"myArray:\n%@", myArray);
Я делаю это:
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.
NSMutableArray *myArray = [NSMutableArray array];
for(int i = 0; i < 10; i++) {
[myArray addObject:[NSNumber numberWithInt:i]];
}
NSLog(@"myArray:\n%@", myArray);
Этот код не делает то, что вы хотите сделать по нескольким причинам:
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 Руководство по основам, чтобы понять некоторые основы.
Более короткий способ:
NSMutableArray *myArray = [NSMutableArray array];
for(int i = 0; i < 10; i++) {
[myArray addObject:@(i)];
}
NSLog(@"myArray:\n%@", myArray);