Использование Swift 2.xConfused по проблеме типа с Содержит и словарь/[String: String]
я борюсь с помощью Содержит два массива словарей. Я постоянно получаю следующее исключение, но я не совсем уверен, почему:
"Cannot convert value of type '[String : String]' to expected
argument type '@noescape ([String : String]) throws -> Bool'"
Код:
var d1: [[String:String]] = [["k1": "v1"], ["k2": "v2"]]
var d2: [[String:String]] = [["k1": "v1"], ["k3": "v3"]]
d1 = d1.filter { (element) -> Bool in
return !d2.contains(element)
}
Screenshot of code and exception
Когда я вместо того, чтобы использовать что-то вроде ...
d1 = d1.filter { (d1_entry) -> Bool in
for d2_entry in d2 {
if d2_entry == d1_entry {
return false
}
}
return true
}
Все работает отлично, но ... это очень клочья и многословная для того, что кажется быть эквивалентной логикой ...?
Я знаю, что у меня отсутствует что-то действительно очевидное/фундаментальное, но я не уверен, что/где/почему.
Любые предложения высоко ценится
Wow - не понимал, что мне пришлось реализовать закрытие для словаря, но, я думаю, это имеет смысл. Виноват. Спасибо за информацию. – eww