【发布时间】:2020-09-07 23:20:11
【问题描述】:
我已经检查了 StackOverflow 没有找到我的查询的任何有效解决方案。
struct MyModel{
let title: String
let subTitle: String
let image: UIImage
}
现在我想搜索标题并输出它返回 mymodel 过滤器数组。 假设这是我的标题数组。
[
"Swift CollectionView Xcode 11",
"Swift UITableView Xcode 11",
"Swift UICollectionView Xcode 11",
"Objective C UITableView Xcode 11",
"Objective C CollectionView Xcode 11",
"Objective C UICollectionView Xcode 11",
]
如果我搜索 "collectionView" 那么,
“Swift UICollectionView Xcode 11”、“Swift CollectionView Xcode 11”- 正确
如果我搜索 "collectionview Objective C",我想要这个搜索结果,它会为我提供带有过滤器的整个数组
"Objective C CollectionView Xcode 11", “目标 C UICollectionView Xcode 11”, "Swift CollectionView Xcode 11", “Swift CollectionView Xcode 11”,
因为在搜索中它也包含collectionview 和objective c。首先,如果它包含整个字符串,则结果必须先显示给我,然后再显示其他。
我尝试过这种方法,但它不起作用
let stringComponent = searchText.components(separatedBy: " ")
_ = searchText.components(separatedBy: " ").map{ (str) in
arrTemp += arrVideo.filter { (data) -> Bool in
if data.title.lowercased().contains(str.lowercased()) && !arrTemp.contains(data){
return true
}
return false
}
还检查了NSPredicate, Sort and filter,但对我不起作用。
请帮帮我!谢谢。
【问题讨论】:
-
您面临的主要问题是只正确排序???
-
是排序,但我想要有问题的结果。
-
现在检查答案已编辑......
-
是的,请检查我在您的帖子上添加了评论。谢谢
标签: swift search filter tableview swift5