作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含几个字典的数组。
{
DisplayName?:"Name of the employee"
Age:28
Department:"Dept 2"
}
let exists = NSPredicate(format: "DisplayName2 CONTAINS[cd] \(searchText!)")
let aList: Array<Any> = arrayDirectory.filter { exists.evaluate(with: $0) }
if(aList.count>0)
{
arrayDirectory=aList
facesCarousel.reloadData()
}
aList
计为 0。似乎没有过滤我的数组。我怎样才能写正确
NSPredicate
在 swift 3 中并使用它过滤我的数组。
最佳答案
在 Swift 中制作这个过滤器不需要 NSPredicate
一点也不。
let array = arrayDirectory.filter {
guard let name = $0["DisplayName"] as? String else {
return false
}
return name.contains(searchText)
}
Dictionary
作为工作对象。将您的字典数组转换为结构数组。这样你就不需要字符串类型的代码或解包那些不是真正可选的属性。
[Any]
的解决方法大批...
[Any]
(不要这样做)您需要先将对象转换为字典。
let array = arrayDirectory.filter {
guard let dictionary = $0 as? [String: Any],
let name = dictionary["DisplayName"] as? String else {
return false
}
return name.contains(searchText)
}
关于ios - 如何在 swift 3 中使用 NSPredicate 过滤数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45029770/
我是一名优秀的程序员,十分优秀!