我有一大堆大小约100000个条目。我在用户在UISearchBar中搜索时显示它,并在tableview上显示过滤数据。但是,在进行动态搜索时,搜索栏太慢。每当用户在搜索栏上放入一个字符时,我就会过滤表格。因此,它在searchBar上输入的文本作为非常晚的响应。我只需要等待它出现在searchBar上。
这就是我想要过滤我的数组。
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
filtered = data.filter({ (text) -> Bool in
let tmp: NSString = text
let range = tmp.rangeOfString(searchText, options: [NSStringCompareOptions.CaseInsensitiveSearch ,
NSStringCompareOptions.AnchoredSearch])
return range.location != NSNotFound
})
if(filtered.count == 0){
searchActive = false;
} else {
searchActive = true;
}
self.tableView.reloadData()
}
答案 0 :(得分:0)
确保您没有阻止main_queue。也许你是从主队列调用sqlite函数。如果是这样,请尝试使用FMDatabaseQueue并从后台队列调用方法并从主队列更新tableview。这将为您处理一切。
答案 1 :(得分:0)