Sum a Array - Objective-C - PullRequest
       7

Sum a Array - Objective-C

15 голосов
/ 10 января 2011

Я только начинаю и ищу простой способ суммировать простой массив. Я прочитал на сайте разработчиков Apple о кодировании значения ключа, и я не понимаю, как применить это к моему массиву или если это подходящий способ суммировать это.

Мой камень преткновения с кодированием значения ключа - это .keypathToProperty - я могу понять, что вам нужна дополнительная ссылка в двумерном массиве, но они не показывают код массива, только путь к заголовку строки так что пока не могу понять.

NSMutableArray *numArray = [NSMutableArray arrayWithCapacity:4];
    [numArray addObject:num1];
    [numArray addObject:num2];  
    [numArray addObject:num3];
    [numArray addObject:num4];

Я ценю ответы!

Спасибо

Graham

Ответы [ 3 ]

74 голосов
/ 10 января 2011

Автоматический способ сделать это:

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

Но если вы только начинаете, я бы порекомендовал избегать операторов пути ключа коллекции и перейти к более простому способу:

double sum = 0;
for (NSNumber * n in numArray) {
  sum += [n doubleValue];
}
0 голосов
/ 13 октября 2017

В Swift 4:

let array = [1,2,3,5]
let sum = array.reduce(0, {$0 + $1})
print(sum)
0 голосов
/ 27 января 2017

Swift 3 : ( метод Дейва Делонга преобразован):

let sum = (numArray as AnyObject).value(forKeyPath:"@sum.self") as! Double

Это должно работать аналогично аналогу Objective-C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...