你好,我是Swift的新手,并尝试在表视图上实现搜索栏。所以我在Youtube上关注了一个教程并正确实现了教程。但是我在使用我的数据时遇到了一些问题。在教程中,数据位于NSArray
,而我的数据来自网络服务及其NSDictionary
所以我的数据保存在NSDictionary中,如果我必须访问变量,我就这样做
cell.countryNameLabel.text = (((dict["\(indexPath.item)"] as?NSDictionary)!["Countries"] as?NSDictionary)!["name"] as?NSString)! as String
好的在教程中他做过类似的事情
var filterTableData = [String]()
var tableData = ["one","two","three"]
func updateSearchResultsForSearchController(searchController: UISearchController) {
filterTableData.removeAll(keepCapacity: false)
let searchPredict = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
let array = (tableData as NSArray).filteredArrayUsingPredicate(searchPredict)
filterTableData = array as! [String]
self.tableView.reloadData()
}
现在我想知道如何实现这一点,因为我将数据存储在NSdictionary
中且变量是 dict
答案 0 :(得分:1)
您可以将字典的键存储到Array对象 并在函数中使用它。
var filterTableData = [String]()
var tableData = Array(dict.keys)