swift2 使用iPhone上的搜索栏和tableview搜索大数组时,文本搜索速度太慢

2w2cym1i  于 2022-11-06  发布在  Swift
关注(0)|答案(2)|浏览(192)

我有一个大约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()

}
6tr1vspr

6tr1vspr1#

你试过用www.example.com查询吗Realm.io?
我知道这比任何数据库管理器在iOS现在更快。
Realm.io

ej83mcc0

ej83mcc02#

请确保您没有阻塞main_queue。也许您正在从主队列调用sqlite函数。如果是这样,请尝试使用FMDatabaseQueue并从后台队列调用这些方法,然后从主队列更新tableview。这将为您处理所有事情。

相关问题