2017-10-28 209 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

我看到你在說什麼,但我質疑它的效率。我可以根據單詞中的字符數來搜索嗎? –