小编rit*_*esh的帖子

如何在 iOS swift 2 中为 uisearchbar 过滤大数组

我的数组中有UISearchBar超过 80000 个元素,我必须根据用户输入过滤该数组。

但是,在搜索视图中输入时,其工作速度非常慢,这意味着在键盘中输入值需要花费太多时间。

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {

    if searchText.characters.count == 0 {
        searchActive = false
    } else {
        searchActive = true;
        filtered.removeAllObjects()

        dispatch_to_background_queue {
            for sumber in self.data {
                let nameRange: NSRange = sumber.rangeOfString(searchText, options: [NSStringCompareOptions.AnchoredSearch,NSStringCompareOptions.CaseInsensitiveSearch])
                if nameRange.location != NSNotFound {
                    self.filtered.addObject(sumber)
                }
            }//end of for

            self.dispatch_to_main_queue {
                /* some code to be executed on the main queue */
                self.tableView.reloadData()
            }
        } //end of dispatch
    }
}

func dispatch_to_main_queue(block: dispatch_block_t?) {
    dispatch_async(dispatch_get_main_queue(), block!)
} …
Run Code Online (Sandbox Code Playgroud)

arrays filter uisearchbar ios swift

5
推荐指数
1
解决办法
4010
查看次数

标签 统计

arrays ×1

filter ×1

ios ×1

swift ×1

uisearchbar ×1