与属性swift同名的函数:.first(where:...)

时间:2016-12-14 00:12:48

标签: swift xcode swift3

对于var myArray:[[String:Any]] Xcode,我可以自动填充

 myArray.first(where:{$0["name"] == "John Doe"})

但是后来不允许我编译它时出现错误“无法调用非函数类型的值'[String:Any]?'”

所以另一个词,swift无法弄清楚我正在寻找方法first(where:_)而不是无参数版本.first。是什么给了什么?

1 个答案:

答案 0 :(得分:2)

Xcode正在为此错误提供错误消息。这是一个简单的类型的事情。您无法将AnyString

进行比较
 myArray.first(where:{$0["name"] == "John Doe"})

应该是:

  myArray.first(where:{
     guard let name $0["name"] as? String else {return false}
     return name == "John Doe"
  })