2017-10-28 138 views
3

我有一个很长的tableView,我可以搜索和过滤结果。UITableView SearchBar过滤查询

但是,如果我输入字母“i”作为输入, 所有带字母“i”的单词出现。 是否有可能以某种方式进行过滤,以便我键入的字母与我要过滤的单词的第一个字母相对应。

例如我的数组["should not use","Tristan","biscuit","is","should not use"]

,如果我查的单词"is"

,可以在Word自动单词 “饼干” 之前出现?

预期结果: [ “是”, “饼干”, “特里斯坦”]

+0

我相信这是一个非常类似的问题:HTTPS:/ /stackoverflow.com/questions/38718005/filter-and-sort-swift-array – huwr

回答

2

您可以使用过滤器和排序的函数来得到预期的结果。

import UIKit 

    var theArray: [String] = ["biscuit", "Tristan", "is", "iser", "instrument", "look"] 
    var keyword: String = "is" 

    let result = theArray 
     .filter { $0.contains(keyword) } 
     .sorted() { ($0.hasPrefix(keyword) ? 0 : 1) < ($1.hasPrefix(keyword) ? 0 : 1) } 


    print(result) 

输出

[ “是”, “伊瑟尔”, “饼干”, “特里斯坦”]

+0

纠正我,如果我错了,但不是这个条件的关键字字符串给出的值? –

+0

你可以用你的搜索栏文本替换关键字 –

+0

我看到你在说什么,但我质疑它的效率。我可以根据单词中的字符数来搜索吗? –