2016-09-29 76 views
0

我在我的建議數組中匹配了一個子字符串來創建自動填充文本字段。在Swift中搜索字符串中的子字符串不起作用

func searchAutocompleteEntriesWithSubstring(substring: String) 
{ 
    autocompleteUrls.removeAll(keepCapacity: false) 

    for curString in countries 
    { 
     let myString:NSString! = curString as NSString 

     let substringRange :NSRange! = myString.rangeOfString(substring) 

     if (substringRange.location == 0) 
     { 
      autocompleteUrls.append(curString) 
     } 
    } 

    autocompleteTableView.reloadData() 

} 

但是,如果國家我尋找是印度,我開始從「NDIA」搜索,它沒有得到建議,應該得到這一點。

+0

的[?如何檢查是否字符串包含在斯威夫特另一個字符串(可能的複製http://stackoverflow.com/questions/24034043/how-do-i -check-if-a-string-contains-another-string-in-swift) –

+1

想一想:if(substringRange.location == 0)是什麼時候? –

+0

你們是否真的在閱讀問題或只是回答問題?請再次閱讀我的確切要求。我想匹配確切的字符明智....如果我開始搜索「dia」,搜索結果也應該返回INDIA – Saty

回答

3

使用謂詞來代替:

let countries = ["india", "japan", "Indonesia", "bangladesh", "Australia"]; 

let predicate = NSPredicate(format: "SELF contains[c] %@", "ndia") 

let autocompleteUrls = countries.filter { predicate.evaluateWithObject($0) } 

print(autocompleteUrls) // output: ["india"] 
+0

偉大的答案現在!!! ! – Saty