Как добавить элементы из NSArray:

Я хочу сделать метод "дополнение Multi", который принимает n парамитеров и добавляет их в сумму

Мой код:

-(void) additionMulti:(NSArray *)data
{
    int sum=0;
    int xx;
    for(xx=0; xx < [data count]; xx++)
    {
        sum =sum + [data  objectAtIndex:xx];
    }

     NSLog(@"The result of adding %@ is : %i",data,sum);
}

3 ответа

Решение

Если вам нужно вычислить сумму из массива объектов, попробуйте следующее:

- (void)additionMulti:(NSArray *)data {
    int sum = 0;
    int xx;

    for(xx=0; xx<[data count]; xx++) {
        sum = sum + [[data objectAtIndex:xx] intValue];
    }

    NSLog(@"The result of adding %@ is : %i",data,sum);
}

Чтобы этот код работал, ваш массив должен быть массивом NSNumber или NSString (чтобы вы могли взять intValue из каждого значения в массиве).

В случае, если вам нужно добавить массив в уже существующий массив, я предлагаю вам следовать решению Джулиана.

Вам нужно изменить строку:

sum = sum + [data  objectAtIndex:xx];

С

sum = sum + [[data  objectAtIndex:xx] intValue];

Вы можете сделать это в одной строке (предполагая, что массив является массивом NSNumbers (т.е. NSArray * data = @[ @1.2, @3, @42 ];).

NSNumber * sum = [data valueForKeyPath:@"@sum.self"];

Для получения дополнительной информации об используемой технике (операторы kvc-collection) см. Этот замечательный пост NSHipster.

Другие вопросы по тегам