【发布时间】:2016-12-01 03:44:24
【问题描述】:
我正在尝试从字典中过滤。
我的代码如下:
var newSimHistoryArr = [] as NSArray
if self.filterBy == kPending {
newSimHistoryArr = (dic["simHistory"] as! [AnyObject]).filter {
return $0 is NSDictionary
}
} else {
for a in dic["simHistory"] as! [AnyObject] {
if a is SimHistory {
newSimHistoryArr = (dic["simHistory"] as! [AnyObject]).filter {
return ($0 as! SimHistory).status == self.filterBy
}
break
}
}
}
在我将项目转换为 Swift 3 之前它运行良好。
错误出现在以下几行:
newSimHistoryArr = (dic["simHistory"] as! [AnyObject]).filter{ return ($0 is NSDictionary)}
newSimHistoryArr = (dic["simHistory"] as! [AnyObject]).filter{ return ($0 as! SimHistory).status == self.filterBy}
错误是:
无法使用“((AnyObject) throws -> Bool)”类型的参数列表调用“过滤器”
我不知道出了什么问题...
【问题讨论】:
-
代码看起来不错,但你应该先做一个
if let向下转换为[AnyObject] -
@Tj3n 它仍然不起作用 - 错误
Cannot call value of function-type Any -
你试过谓词吗?
-
您能否包含更多代码,最好去掉无害的部分?例如,
filterBy是什么?