在 Swift 中的字符串中搜索子字符串无效

Searching for a substring in string in Swift not working

我正在匹配我的建议数组中的一个子字符串以创建一个自动完成文本字段。

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" 开始搜索,它没有得到建议,它也应该得到建议。

改为使用谓词:

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

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

let autocompleteUrls = countries.filter { predicate.evaluateWithObject([=10=]) }

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