2016-12-14 43 views
0

对于var myArray:[[String:Any]]的Xcode让我自动完成功能的相同名称的属性SWIFT:。首先(其中:...)

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

但当时没有让我有错误“无法调用值编译非功能型“[字符串:任何]?””

所以anotherwords,迅速想不通,我正在寻找方法first(where:_),而不是没有参数没有版本.first。是什么赋予了?

+0

@AlexanderMomchliov定了! –

回答

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" 
    }) 
+1

你可以把它写成'myArray.first(其中:{$ 0 [“name”] as String ==“John Doe”})' – OOPer

+1

@JoeDaniels这就是为什么你不使用字典来存储静态数据结构这样的键:页 – Alexander

相关问题