如何指定在 UITableView 中显示哪些单元格?

How to specify which cells to show in UITableView?

目前我有显示联系人列表的 UITableView (names/phone numbers/images),我有来自服务器的 phone 号码列表。 我需要 UITableView 只显示与来自服务器的 phone 号码匹配的联系人。 使用联系人框架导入联系人:

func findContacts() {
    let store = CNContactStore()

    let keysToFetch = [CNContactFormatter.descriptorForRequiredKeysForStyle(.FullName),
        CNContactImageDataKey,
        CNContactPhoneNumbersKey]

    let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch)

    do {
        try store.enumerateContactsWithFetchRequest(fetchRequest, usingBlock: { (let contact, let stop) -> Void in
            //Saves all contacts as [CNContact]
            self.contacts.append(contact)
        })
    }

例如,我得到 phone 个数字

var numberArray = [String]()
var number = contacts[indexPath.row].phoneNumbers
let phoneNumber = number.value as! CNPhoneNumber
numberArray.append(phoneNumber.stringValue)

是否可以指定 tableView 何时应该 return 单元格或者我应该尝试实现 for _ in _ 循环?

最好的方法是仅将地址加载到 phone 数字匹配的 table 查看数据模型中 - 因此您应该先过滤从服务器获得的结果,然后再将它们显示在table.

enumerateContactsWithFetchRequest 中,您应该检查 phone 号码是否在您从服务器获得的 phone 号码列表中。

否则,您可以使用此答案中提供的方法过滤您的联系人数组: