【问题标题】:Searching for a substring in string in Swift not working在 Swift 中搜索字符串中的子字符串不起作用
【发布时间】:2016-09-29 06:32:43
【问题描述】:

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

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

【问题讨论】:

  • 想一想:if (substringRange.location == 0)什么时候是真的?
  • 你们是真的阅读问题还是只是回答问题?请再次阅读我的确切要求。我想准确匹配字符......如果我开始搜索“dia”,搜索结果也应该返回 INDIA
  • @MartinR...我已经这样做了...感谢您的反馈

标签: ios swift string autocomplete nsstring


【解决方案1】:

改用谓词:

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"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2016-06-21
    • 2013-11-09
    相关资源
    最近更新 更多