如何从ios swift中的设备获取联系人列表?

时间:2015-04-27 12:00:12

标签: swift

我试图从设备上获取联系人列表,但出现了问题,所以我没有收到联系人列表。

这是我的代码,我做错了什么?

let addressBook = APAddressBook()

override func viewDidLoad() {
    super.viewDidLoad()
    self.registerCellClass(AddressTableViewCell.self, forModelClass: APContact.self)
    self.addressBook.fieldsMask = APContactField.Default | APContactField.Thumbnail
    self.addressBook.sortDescriptors = [NSSortDescriptor(key: "firstName", ascending: true),
        NSSortDescriptor(key: "lastName", ascending: true)]
    self.addressBook.filterBlock = {(contact: APContact!) -> Bool in
        return contact.phones.count > 0
    }
    self.addressBook.loadContacts({ (contacts: [AnyObject]!, error: NSError!) in
            if (contacts != nil) {
                self.memoryStorage().addItems(contacts)
            } else if (error != nil) {
                let alert = UIAlertView(title: "Error", message: error.localizedDescription, delegate: nil, cancelButtonTitle: "OK")
                alert.show()
            }
     })
}

1 个答案:

答案 0 :(得分:0)

我认为你正在点击addItems行,但是你没有看到它反映在表格视图中?如果是这种情况,问题很可能是loadContacts异步运行,因此您必须在表格视图完成后调用reloadData。否则,APAddressBook完成加载联系后,您的表视图将永远不会更新。