- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的许多应用程序中,它需要将一些数据与地址簿中的联系人关联起来。我过去所做的就是保存 ABPerson 的记录 ID,并使用该 ID 在每次应用程序启动时提取信息。然而,我越来越发现这种方法是错误的,因为很多时候用户会使用像 mobileme 这样的服务,其中地址簿会被删除并重新同步。这会导致记录 ID 更改并且所有关联都会丢失。用户必须仔细检查每一项并重新链接它们。
保存指向地址簿条目的稳健指针的更好方法是什么?
最佳答案
您应该存储三个值:记录 ID、名字和姓氏。
1) 如果记录 ID 没有更改,那么您就很出色 - 只需使用它来查找正确的记录即可。
2) 如果 ABAddressBookGetPersonWithRecordID()
没有找到您存储的记录 ID 的记录(它返回 NULL),那么您需要根据第一个和姓。如果您已经拥有一个包含内存中所有人员记录的数组,则可以直接使用 ABAddressBookCopyPeopleWithName()
或编写自己的定位代码。找到新记录由您决定。找到新记录后,您可以使用新记录 ID 更新数据存储。
最终,您最终会存储记录 ID 以直接使用,以防它不会更改(如果您幸运的话),并存储地址簿条目中不太可能更改的一些键。与地址簿条目关联的个人或组织的名称最有可能改变。当然,您应该考虑到可能无法通过存储的记录 ID 或通过搜索名称找到记录的情况。这可能意味着该记录已被删除,也可能意味着该记录已被重命名。您应该以您认为最适合您的特定应用程序的方式来处理这种情况。
关于iphone - 与 ABPerson 交往的正确方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1766368/
我是一名优秀的程序员,十分优秀!