搜索字符而不是单词SWIFT

时间:2015-12-18 18:41:13

标签: ios swift

您好我正在构建代码,我正在使用结构。我想在视图上设置搜索。这是我到目前为止所做的以及我正在做的事情

struct subCategory {
    var subCategoryName = String()
    var subCategoryDesc = String()
    var subImageId = String()
    var subType = String()
    var subLinkType = String()
    var subCatImageUrl = String()
    var subCatId = String()
}

var subCatContent = subCategory()
var subCatArray = [subCategory]()
var filteredsub = [subCategory]()

这是我的视图控制器

self.resultSearchController = UISearchController(searchResultsController: nil)
self.resultSearchController.searchResultsUpdater = self
self.resultSearchController.dimsBackgroundDuringPresentation = false
self.resultSearchController.searchBar.sizeToFit()
self.tableView.tableHeaderView = self.resultSearchController.searchBar
self.tableView.reloadData()

我明白了。我需要的是搜索字符而不是整个工作。因此,如果我在输入T或TO时搜索TOUR,我希望它能显示我将如何做到这一点?

func updateSearchResultsForSearchController(searchController: UISearchController)
{
    self.filteredsub.removeAll(keepCapacity: false)
    filteredsub = subCatArray.filter{
        $0.subCategoryName == searchController.searchBar.text!
    }
    self.tableView.reloadData()
}

不,我想搜索一下这些东西。我有它的工作,所以如果TOUR在列表中它找到了,但我希望它也给我一个结果,如果我输入TO它仍然会告诉我TOUR甚至我没有完成拼写

1 个答案:

答案 0 :(得分:2)

使用'rangeOfString()'方法。

func updateSearchResultsForSearchController(searchController: UISearchController)
{
    self.filteredsub.removeAll(keepCapacity: false)
    filteredsub = subCatArray.filter{
        $0.subCategoryName.rangeOfString(searchController.searchBar.text!) != nil
    }
    self.tableView.reloadData()
}

您还可以将字符串转换为小写,以使搜索“不区分大小写”。

$0.subCategoryName.lowercaseString.rangeOfString(searchController.searchBar.text!.lowercaseString) != nil