2017-02-03 5 views
0

У меня есть два основных объекта данных, предложение и wageClass, и каждый из них имеет отношение ко многим. WageClass имеет атрибут Int, numberOfWorkers. Мне нужно суммировать массив numberOfWorkers, связанный с каждым предложением.суммарный массив атрибутов объекта Core Data

В настоящее время я использую это:

let proposalNumberOfWorkers = proposal.value(forKeyPath: "wageClasses.numberOfWorkers") 

и когда я делаю это:

let arraySum = proposalNumberOfWorkers.reduce(0, +) 

Я получаю сообщение об ошибке: тип Любой не снижают ни один член. Когда я устранить предыдущую строку кода и попробуйте напечатать массив как это:

totalWorkersLabel.text = "\(proposalNumberOfWorkers!)" 

UILabel выглядит следующим образом: {(15)}

(15 является либо первый или самый последний элемент в массиве, я не уверен, какой)

Так что мне интересно, 1) как я могу это сделать, отредактируйте и 2) о скобках и парсерах. Заранее благодарю за ваши комментарии!

ответ

0

Скобки и скобки указывают, что proposalNumberOfWorkers! является NSSet. NSSet не распознает метод reduce. NSSet и Set замкнуть, так что вы можете получить то, что вам нужно литьем proposalNumberOfWorkers как Set:

let proposalNumberOfWorkers = proposal.value(forKeyPath: "wageClasses.numberOfWorkers") as! Set<Int> 

, а затем использовать reduce.

+0

Спасибо! Прекрасно работает! – camelCaseUpInYourFace

Смежные вопросы