Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 带有聚合运算符的数组过滤器_Swift_Nsarray_Nspredicate - Fatal编程技术网

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”代码。