在 CoreData 中保留 ABPerson 的引用

Keep reference of ABPerson in CoreData

我正在努力使 phone 在我的应用程序中的联系人持续保持最新状态。为此,我正在考虑使用核心数据。

我现在的计划似乎非常不理想:

每次应用程序进入前台时我都会这样做,以防用户更改他的联系人姓名或照片等

我的一些用户有超过 2500 个联系人,有时操作持续长达 10 秒。

我的问题是:

有没有办法在 coredata 中保留对我的 ABPerson 的某种引用,这样我就可以随时加载我的 ABPerson 属性而不是 Contact 属性? (然后将始终是最新的)。

而且我什至不确定这是正确的决定: 我是否应该始终使用通过参考找到的 ABRecord? 我是否应该始终使用自己定期更新的复制数据(来自 ABAddressBook)?

如果不是,你们认为我这样做的方式是否得体,或者您有其他建议吗?

编辑:

如评论中所问:

我需要让联系人保持最新状态,只是为了使用他们的名字、姓氏和图片属性。如果我注意到 ABRecord 发生变化,我将相应地更新相关的自定义对象,仅此而已。之后我真的不需要任何其他东西(直到再次编辑它们)

谢谢

获取并存储 ABRecord 的唯一标识符值。这是重复和一致地可靠地指代同一个人的一种持久方式。

您始终可以使用此唯一标识符从联系人数据库中获取所有其他信息。

在iOS中调用ABRecordGetRecordID获取此人的唯一ID。存储那个。以后想获取对应的人时,调用ABAddressBookGetPersonWithRecordID.