Заполнение массива целыми числами - PullRequest
0 голосов
/ 25 января 2012

Допустим, я хочу заполнить NSarray 50 целыми числами. Мы знаем, что NSarray принимает только объекты. Так что я должен сделать 50 раз

NSNumber *num1 = [NSNumber numberWithInit:10];
NSNumber *num2 = [NSNumber numberWithInit:212];
......
NSNumber *num50 = [NSNumber numberWithInit:12];

Есть ли более элегантный способ добиться этого, потому что выглядит глупо на 50 строк кода только для создания числовых объектов?

Ответы [ 3 ]

0 голосов
/ 25 января 2012

попробуйте это ...

NSMutableArray *array=[[NSMutableArray alloc]initWithCapacity:50 ];

    for (int i=0; i<0; i++) {
        NSNumber *number=[[NSNumber alloc] initWithInt:i];
        [array addObject:number];
        [number release];
    }
//do anything with arrray and release the array later.

это нормально, или вы ищете что-нибудь еще .?

0 голосов
/ 25 января 2012

Похоже, ваши числа не соответствуют какой-то определенной схеме, поэтому вам лучше сделать это, создав сначала массив C:

int myValues[] = { 10, 212, ..., 12 };
NSUInteger count = sizeof(myValues)/sizeof(int); // number of integers in myValues

// abstract the following into a function/method/category if doing more than once
NSMutableArray *objcValues = [NSMutableArray arrayWithCapacity:count];
for(NSUInteger ix = 0; ix < count; ix++)
   [objcValues addObject:[NSNumber numberWithInt:myValues[ix]];
0 голосов
/ 25 января 2012

Как насчет использования NSMutableArray?

NSMutableArray* arr = [[NSMutableArray alloc] init];
int i = 0;
for(i=0; i<50; i++) {
    NSNumber* num = [NSNumber numberWithInt:i]; // use i or random numbers
    [arr addObject:num];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...