Сумма массива - Objective-C
Я только начинаю, и я ищу простой способ суммировать простой массив. Я прочитал сайт разработчика Apple по кодированию ключевых значений, и я не понимаю, как применить это к моему массиву, или если это подходящий способ суммировать это.
Моим камнем преткновения с кодированием значения ключа является .keypathToProperty - я могу понять, что вам нужна дополнительная ссылка в 2D-массиве, но они не отображают код массива, а только ключевую ссылку на заголовок строки поэтому я пока не могу понять.
NSMutableArray *numArray = [NSMutableArray arrayWithCapacity:4];
[numArray addObject:num1];
[numArray addObject:num2];
[numArray addObject:num3];
[numArray addObject:num4];
Я ценю ответы!
Спасибо
Грэхэм
Ответы
Ответ 1
Автоматический способ сделать это:
NSNumber * sum = [numArray valueForKeyPath:@"@sum.self"];
Но если вы только начинаете, я бы рекомендовал избегать операторов набора ключей и перейти на более простой способ:
double sum = 0;
for (NSNumber * n in numArray) {
sum += [n doubleValue];
}
Ответ 2
Swift 3: (метод Dave DeLong преобразован):
let sum = (numArray as AnyObject).value(forKeyPath:"@sum.self") as! Double
Это должно работать аналогично ему Objective-C.
Ответ 3
В Swift 4:
let array = [1,2,3,5]
let sum = array.reduce(0, {$0 + $1})
print(sum)