Как найти строку или символ типа [[String]] - PullRequest
0 голосов
/ 17 мая 2019
//Am not getting any search list of cells
//when am searching am getting empty array every time.

var actors = [["a0","b0","c0","d0"],["a1","b1","c1","d1"],["a2","b2","c2","d2"],["a3","b3","c3","d3"]]

var filterArr:[[String]] = []

func updateSearchResults(for searchController: UISearchController) {        
    print("Searching for text:----\(searchController.searchBar.text!)")

    let predicate = NSPredicate(format: "SELF Contains[c] %@" , searchController.searchBar.text!)

    filterArr = (actors as NSArray).filtered(using: predicate) as! [[String]]
    print(filterArr)

}

1 Ответ

0 голосов
/ 17 мая 2019

Не используйте вещи Objective-C, такие как NSPredicate и NSArray, когда это не нужно.Используйте Swift filter и map.

Из того, что вы описали в комментариях, вы хотите сохранить только внутренние массивы, содержащие искомый текст.Вы можете сделать это:

filterArr = actors.filter { $0.contains(searchController.searchBar.text!) }

Если вы хотите сохранить только внутренние массивы, содержащие элементы, которые содержат текст поиска, сделайте это:

filterArr = actors.filter { $0.contains { $0.contains(searchController.searchBar.text!) } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...