在表视图中通过CNContacts搜索

时间:2019-01-07 20:39:22

标签: swift uitableview uisearchbar contacts cncontact

我制作了一个非常简单的通讯录,其中显示了用户的图片,姓名和电话号码。并且我已经在表格视图中实现了它们,现在我为表格添加了一个搜索栏,它的运行方式并不理想!

我的桌子工作正常。我已经搜索了整个堆栈溢出和互联网,但是它们都与通过CNContatcs搜索无关。

var twoDimensionalArray = [ExpandableNames]()
var emptySearchBAR = [ExpandableNames]()

   struct FavoritableContact {
let contact: CNContact
  }

  struct ExpandableNames {
var isExpanded: Bool
var names: [FavoritableContact]
      }

searchBar代表:

     func searchBar(_ searchBar: UISearchBar, textDidChange 
  searchText: String) {
    guard !searchText.isEmpty else { twoDimensionalArray = 
 emptySearchBAR
        tableView.reloadData()
        return }

    twoDimensionalArray = emptySearchBAR.filter({ (element) -> Bool in
        guard let text = searchBar.text else { return false }


        print("element = \(element.names[0].contact)")

        return  element.names[0].contact.givenName.contains(text)

    })
    tableView.reloadData()
}

表格视图:

    let favoritableContact = twoDimensionalArray[indexPath.section].names[indexPath.row]

    cell?.phoneNumber.text = favoritableContact.contact.phoneNumbers.first?.value.stringValue

我的问题在于这部分:

        return  element.names[0].contact.givenName.contains(text)

由于它是CNcontacts,因此在搜索它时有些混乱。 它返回名字:|

0 个答案:

没有答案