【发布时间】:2019-03-23 10:34:06
【问题描述】:
我被卡住了
不能对不可变值使用变异成员:函数调用返回不可变值
这段代码出错:
var bagsToScan: [BagQR] {
var initial: [Bag] = []
return TaskManager.shared.tasks.value
.filter({ $0.state == .ready })
.reduce(initial) { (acc, task) in
var bagQR = task.bags.filter({
!tasksChecked.contains(BagQR(bag: $0, taskName: task.name).taskName)
}).map({
BagQR(bag: $0, taskName: task.name)
})
acc.append(contentsOf: bagQR)
}.sort({ $0.bag.scanIndex < $1.bag.scanIndex })
}
错误打印在reduce(initial) { (acc, task) in 行。
感谢您的帮助!
【问题讨论】:
-
acc 在 reduce 闭包中是不可变的。试试
return acc + bagQR。 -
将排序更改为已排序。