在UISearchController Swift中将标题与Image名称匹配

时间:2015-12-15 09:14:10

标签: ios swift uitableview dictionary uisearchbar

我有一个tableviewController,我有一个SearchBar。当我在搜索框中输入自助餐厅名称时,会显示带有找到名称的错误图像。

这是我的变量:我应该用另一种语法格式声明我的字典数组中的标题和图像吗?

@IBOutlet weak var RetailTableView: UITableView!  //our TableView
        var resultSearch = UISearchController() //our UISearchbar

        var menuItems = [["20/20 Cafe" : "20_20Cafe.jpg"],
                        ["Au Bon Pain": "AuBonPain.jpg"]]

        var menuItemsFiltered = [(String)]()

这是我的TableViewFunc:

internal func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {  
        let cell = tableView.dequeueReusableCellWithIdentifier("RetailCell", forIndexPath: indexPath) as! ResidentialTableViewCell

        let entry = menuItems[indexPath.row]
        let image = UIImage(named: RetailImagesArray[indexPath.row])

                if self.resultSearch.active
                {
                    cell.RetailLabel.text = menuItemsFiltered[indexPath.row]
                }
                else
                {
                    cell.RetailImage.image = image
                    cell.RetailLabel.text = entry.keys //Not Working
                }

我的搜索功能无效

 func updateSearchResultsForSearchController(searchController: UISearchController) {

        self.FilteredArray.removeAll(keepCapacity: false)
        let searchText = searchController.searchBar.text!.lowercaseString
        FilteredArray = RetailPlacesArray.filter({$0.lowercaseString.rangeOfString(searchText) != nil})

        RetailTableView.reloadData()
    }

请帮忙,我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果找不到字符串,则

rangeOfString不返回nil,而位置为NSRange的{​​{1}}则不会返回。{/ p>