ios - 在 Swift 中搜索字符串中的子字符串不起作用

标签 ios swift string autocomplete nsstring

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

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($0) }

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

关于ios - 在 Swift 中搜索字符串中的子字符串不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39762988/

相关文章:

ios - Swift 的新手和困惑 - 在 Swift 类中存储大型常量/数据集

ios - 如何将我的 iOS 应用程序中的内容分享到 BBM?

ios - 我可以在使用 socket.io-client-swift 连接时更改 connectParams 吗?

ios - 错误 : "nested pop animation can result in corrupted navigation bar"

swift - NSCollectionView `validateDrop` 委托(delegate)未被调用

ios - 隐藏 CollectionViewCell 而不更新数据源

ios - 导航栏上按钮的大小 Xcode9.4

c++ - string.empty 和 string[0] == '\0' 之间的区别

javascript - 删除/标准化 Javascript/Jquery 中的重音符号

c++ - 将 string 转换为 char ,空格字符未正确转换