ios - whatsapp 如何在 iOS 中更快地从通讯录中获取更新的联系人?

标签 ios objective-c abaddressbook whatsapp addressbookui

我的发现

我正在设计一个逻辑来与我的后端同步联系人。我浏览了一些在 IOS 中做同样事情的应用程序。我将以 WhatsApp 为例,我发现当我更新 Native Addressbook 中的任何联系人时,它会以一小部分反射(reflect)到 Whatsapp 中。

我的问题

我只想知道它是如何以更快的方式同步的。即使是新联系人也会与其远程服务器同步并显示在联系人上,并且如果该号码已注册,则能够发起 Whatsapp 聊天。

查询摘要

所以,简而言之,我的问题是,

  1. Whatsapp 如何同步联系人?
  2. whatsapp 如何从 native 地址簿获取刚刚更新的联系人列表(如果它正在这样做)?
  3. whatsapp 如何将新联系人添加到地址簿中,是否有时间戳或其他管理方式?

我知道下面的东西是这样的,

ABAddressBookGetPersonCount
ABAddressBookGetPersonWithRecordID
ABAddressBookCopyArrayOfAllPeople

使用 ABAddressBookGetPersonCount 我可以知道是否有任何新的联系人,但我仍然如何知道它的记录 ID 而无需使用 ABAddressBookCopyArrayOfAllPeople 迭代每个联系人

所以我只是在询问如何获取刚刚更新的列表。

最佳答案

执行此操作的方法是 registering an external change callback .这样,您的应用会在地址簿发生任何更改时立即收到通知。

关于ios - whatsapp 如何在 iOS 中更快地从通讯录中获取更新的联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31759863/

相关文章:

html - 网站在 iPhone 上旋转 180 度

ios - 如何为 Apple Store(ionic 应用程序)正确设置英语以外的其他语言

iphone - 绘画应用中的 UISwipeGestureRecognizer

ios - UIStackView 可以支持 iOS 8 或 7 吗?

ios - 配置表格每个cell的indexPath

ios - 以编程方式将 iPhone 联系人导出到 .vcf 文件

ios4 - GCD和回调-并发问题

iOS 11 - 添加委托(delegate)后未收到位置更新

ios - 使用 AFNetworking 从多个资源中获取数据并返回

ios - 请求访问通讯簿时出现MachMessagePort错误