首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Swift-2对大数组进行高性能过滤

如何使用Swift-2对大数组进行高性能过滤
EN

Stack Overflow用户
提问于 2016-02-24 06:57:57
回答 1查看 1.3K关注 0票数 2

在输入搜索栏时,我尝试了它的结果应该是表视图中的更新,因为我在输入时动态地过滤数据。

当我在模拟器中进行测试时,它工作得很好,但实际上它在iPhone上运行,而输入它时,它的响应非常慢。

我知道,由于大数组,即100000条记录的数组,因此它可能会给我缓慢的响应。

这是我的实际过滤工具,当用户开始键入时,它将过滤数据。

代码语言:javascript
运行
复制
   func searchBar(searchBar: UISearchBar, textDidChange searchText: String)
            {
                  self.filtered = self.data.filter({ (text) -> Bool in

                        let tmp: NSString = text
                        let range = tmp.rangeOfString(searchText, options: [NSStringCompareOptions.CaseInsensitiveSearch , NSStringCompareOptions.AnchoredSearch])
                    return range.location != NSNotFound

                })


                if(self.filtered.count == 0)
                {
                    self.searchActive = false;
                }
                else
                {
                    self.searchActive = true;
                    self.tableView.reloadData()
                }
                if(searchBar.text == "")
                {
                    searchBar.resignFirstResponder()
                }
                self.tableView.reloadData()

                searchBar.showsCancelButton = true
                self.ContainerView.hidden=true
                self.tableView.hidden=false
                if(searchBar.text != "")
                {
                    self.ContainerView.hidden=true
                    self.tableView.hidden=false
                }
        }

我需要如何实现它,使它能够快速过滤并提供快速响应?

我是否应该用“多线程”来实现它&如何实现?

就连我都用以下方法尝试过这个东西..。

dispatch_to_background_queue {} & func dispatch_to_main_queue(块: dispatch_block_t?) { dispatch_async(dispatch_get_main_queue(),块!)}

请给我建议正确的解决办法。

EN

回答 1

Stack Overflow用户

发布于 2016-02-24 07:08:11

  1. 以前排序或过滤的约束数组使生活变得非常简单。
  2. 获取的数据可以按其添加的日期进行限制,这可以减少要过滤的数据数量。

此外,我认为这个选项只是一个帮助或提示,不一定需要严格,上面可以慢慢地改进您的特性。

尝试使用更好的NSPredicate来改变我的改进过程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35595304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档