在swift中搜索struct

时间:2015-12-18 16:44:23

标签: 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()

这是假设发生魔法的地方,但它不起作用因为subCatArray不是NSArray所以我不能使用谓词。我怎么能这样做?

func updateSearchResultsForSearchController(searchController: UISearchController)
{
    self.filteredsub.removeAll(keepCapacity: false)
    let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
    let array = (self.subCatArray as NSArray).filteredArrayUsingPredicate(searchPredicate)
    self.filteredsub = array as! [String]

    self.tableView.reloadData()
}

1 个答案:

答案 0 :(得分:2)

由于您使用的是subCategory数组,因此您可以使用filter,例如:

filteredsub = subCatArray.filter { 
    $0.subCategoryName == searchController.searchBar.text!
} 
相关问题