Swift 带有聚合运算符的数组过滤器
Swift 带有聚合运算符的数组过滤器,swift,nsarray,nspredicate,Swift,Nsarray,Nspredicate,array.filtered在Swift中不再存在,我正在寻找一种在array.filter中使用“in”运算符的方法。filter闭包与我在NSPredicate中使用它的方式相同 之前的查询是这样的 let predicate = NSPredicate(format: "(user in %@)", overallUsers) tasksArray.filtered(using: predicate) 现在这不能用于swift4,那么如何使用array.filter{}实现同样的效果呢?
array.filtered
在Swift中不再存在,我正在寻找一种在array.filter中使用“in”运算符的方法。filter闭包与我在NSPredicate中使用它的方式相同
之前的查询是这样的
let predicate = NSPredicate(format: "(user in %@)", overallUsers)
tasksArray.filtered(using: predicate)
现在这不能用于swift4,那么如何使用array.filter{}实现同样的效果呢?我试过这样的东西
tasksArray.filter{$0.user in overallUsers}
此操作失败,错误为“无法将“@lvalue User”类型的值转换为闭包结果类型“Bool”。如何实际做到这一点?而不是
tasksArray.filter{$0.user in overallUsers}
您需要这样的东西:
tasksArray.filter { task in
overallUsers.contains(task.user)
}
要求:
User
必须符合equalable
而不是tasksArray.filter{$0.User in overallUsers}
您需要这样的东西:
tasksArray.filter { task in
overallUsers.contains(task.user)
}
要求:
用户
必须符合平等
您可以这样检查
taskArray.filter( { overallUsers.contains($0.user) } )
你可以这样检查
taskArray.filter( { overallUsers.contains($0.user) } )
是否要筛选所有用户?可能的重复用户无法逐字翻译a
NSPredicate
格式。你必须问自己:“NSPredicate中“someArray中的某物”是什么意思?”?如果某个数组包含某个内容。然后,只需编写相应的“Swift”代码。您想筛选所有用户?可能的重复用户无法逐字翻译为NSPredicate
格式。你必须问自己:“NSPredicate中“someArray中的某物”是什么意思?”?如果某个数组包含某个内容。然后,只需编写相应的“Swift”代码。