Как добавить элементы из 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.