我有一个大约100000个条目的大数组。当用户在UISearchBar中搜索时,我会显示它,它会在tableview上显示过滤后的数据。但是,在进行动态搜索时,搜索栏太慢了。即,每次用户在搜索栏上输入一个字符时,我都会过滤表。结果,它会在搜索栏上显示输入的文本,作为非常晚的响应。我只需要等待它出现在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()
}
2条答案
按热度按时间6tr1vspr1#
你试过用www.example.com查询吗Realm.io?
我知道这比任何数据库管理器在iOS现在更快。
Realm.io
ej83mcc02#
请确保您没有阻塞main_queue。也许您正在从主队列调用sqlite函数。如果是这样,请尝试使用FMDatabaseQueue并从后台队列调用这些方法,然后从主队列更新tableview。这将为您处理所有事情。