【发布时间】:2017-02-06 11:01:17
【问题描述】:
我正在尝试获取两个数组并将它们组合成一个没有任何重复项的新数组。但是,我无法绕过以下错误。
Cannot convert value of type '(Any) throws -> Bool? to expected argument type '(Any) throws -> Bool?
我正在尝试合并两个包含多个字典的数组。我正在比较数组中每个字典中的“名称”。
let array2Name = array2.flatMap({$0["name"]}) // ["eli", "will"]
array2 = array1.reduce(array2) { !array2Name.contains(where: $1["name"] as! (Any) throws -> Bool? ?? "") ? $0 + [$1] : $0 }
print(array2)
【问题讨论】:
-
您只是在这里混淆了编译器。你试过
contains(element: $1["name"] ?? "")而不是contains(where:...)吗? -
通过此更改,它会返回相同的错误,建议将元素更改为 where,这会导致我遇到与以前相同的错误