Невозможно изменить NSNumber на Double и выполнить некоторые вычисления с ним

Моя проблема в том, что у меня есть массив, который содержит несколько двойных значений

NSArray *level4results = [context executeFetchRequest:request error:&error];

Затем я суммирую все значения в этом массиве

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

Следующее, что я хочу сделать, это разделить на 8 сумму массива... и вот где я застрял. Я перепробовал много вариантов и способов сделать это любым способом, я продолжал получать различную ошибку. Это то, что у меня есть в моем коде

double l4average = ([l4sum doubleValue] / 8);

однако это выдает следующую ошибку

* Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: "-[__NSArrayI doubleValue]: нераспознанный селектор отправлен в экземпляр

Помощь в решении этой проблемы приветствуется. Спасибо

2 ответа

Решение

Это оператор сбора. Эта строка:

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

Должно быть написано:

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

Оператору суммы нужно @:

@"@sum.self"
Другие вопросы по тегам