Как искать, если UITabelviewcell как 2 массива в iOS swift4? - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть два массива типа names = ["Gopal","Harish","Krishna","Ramu"] и numbers = ["468648","586385","5868544","354333"].Я отображаю эти 2 массива в UItableViewCell.Но всякий раз, когда я ищу по имени, его поиск только по имени, а не по соответствующему номеру.Как отфильтровать имя по соответствующему номеру в iOS swift

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {

    filtered = names.filter({ (text) -> Bool in
        let tmp: NSString = text
        let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
        return range.location != NSNotFound
    })
    if(filtered.count == 0){
        searchActive = false;
    } else {
        searchActive = true;
    }
    self.tableView.reloadData()
}

В представлении загрузилось:

    for i in nameArr

    {

        for j in numberArr

        {
            models = [
                Contact(name:i, number:j)
            ]


        }
    }

1 Ответ

0 голосов
/ 26 ноября 2018

Если вы хотите сопоставить каждое имя номеру в контакте, вам, вероятно, следует использовать один для цикла.

Попробуйте напечатать экземпляры Contact в конце viewDidLoad () Модель будет иметь 16 элементов вего массив.

Если вы просто хотите 4 элемента в массиве,

class PhoneBook : NSViewController {

    struct Contact {
       let name: String
       let number: String
    }

    let names = ["Gopal","Harish","Krishna","Ramu"]
    let numbers = ["468648","586385","5868544","354333"]

    override func loadView() {
        var model: [Contact] = []
        for index in 0..<names.count
        {
            model.append(Contact(name: names[index], number: numbers[index]))
        } 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...