В настоящее время я работаю над приложением «Контакт», чтобы протестировать некоторые функции, и застрял в строке поиска.Я не могу искать между всеми моими контактами на главной странице.Swift 4.2 и Xcode 10
class ContactsViewController: UITableViewController, CNContactViewControllerDelegate, UISearchBarDelegate {
// Outlet for Search Bar
@IBOutlet weak var searchBar: UISearchBar!
, это определение моего делегата на IBOutlet
, затем моя функция для отображения контактов на домашней странице
/ * Show Contacts *
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if contactList != nil {
return contactList.count
}
return 0
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "contactCell", for: indexPath)
let contact: CNContact!
contact = contactList[indexPath.row]
cell.textLabel?.text = "\(contact.givenName) \(contact.familyName)"
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let contact = contactList[indexPath.row]
let controller = CNContactViewController(for: contact)
navigationController?.pushViewController(controller, animated: true)
}
Как я могусделать это searchBar просмотреть мои контакты, используя в качестве ключа имя или фамилию.
Вот одна из моих попыток, но я получаю сообщение об ошибке с contains
:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchBar.text == nil || searchBar.text == "" {
inSearchMode = false
view.endEditing(true)
tableView.reloadData()
} else {
inSearchMode = true
filteredData = contactList.filter({$0.contains(searchBar.text!)})
tableView.reloadData()
}
}