I have an array containing 3 objects like so:
class AClass {
var distance: Int?
}
let obj0 = AClass()
obj0.distance = 0
let obj1 = AClass()
obj1.distance = 1
let obj2 = AClass()
obj2.distance = 2
let arr = [obj0, obj1, obj2]
When I reduce the array and assign it to a variable, I can only sum the last element in the array.
let total = arr.reduce(0, {$1.distance! + $1.distance!}) //returns 4
If I try $0.distance! it errors with "expression is ambiguous without more context".
I tried being more explicit:
var total = arr.reduce(0, {(first: AClass, second: AClass) -> Int in
return first.distance! + second.distance!
})
But this errors with "'Int' is incompatible with contextual type '_'" How do I reduce it to the sum of the distances?