【问题标题】:Why is ABRecordCopyCompositeName NULL, and what's an alternative?为什么 ABRecordCopyCompositeName 为 NULL,还有什么替代方法?
【发布时间】:2011-08-09 05:33:24
【问题描述】:

我发现在开发中,在我的联系人中,ABRecordCopyCompositeName 为一些记录返回 NULL,但是当我正常查看我的联系人列表时,我没有看到任何缺失的姓名。

如果 ABRecordCopyCompositeName 返回 NULL,则使用什么标准替代标签?另外,是什么导致 NULL 值首先存在?

(编辑:标题更正)

奇怪的是:

  • “联系人”iPhone 应用底部的计数显示 119 个联系人。
  • 我统计了所有条目 - 所有 119 个条目都在那里并且都有名字。
  • [ABAddressBookCopyDefaultSource(addressBook) count] 返回 116,而不是 119。
  • 计算 ABAddressBook 中的每个条目,我得到 116,包括 3 个空条目。

所以,除了三个空条目之外,我还缺少 3 个。

【问题讨论】:

    标签: iphone ios4


    【解决方案1】:

    我仍在寻找更好的答案,但在那之前,我发现了以下内容:

    • NULL 记录是由于从 Exchange 导入的记录。它们显示为有名称,如果您编辑并保存它们(通过 UI),名称会正确显示,但在那之前,我似乎无法从记录中找到名称。

    三个“缺失”的记录仍然让我感到困惑。我相信它们也是从 Exchange 导入的,但只是没有包含在 ABAddressBookCopyDefaultSource 请求中。

    我的解决方法是不直接从 ABAddressBook 填写表格单元格,而是先将条目复制到数组中,以便计数正确。随着我进一步发布,我可能会回到这个例程并对其进行更改,以便非常大的地址簿不会导致内存问题。

    【讨论】:

      【解决方案2】:

      并非所有联系人都存储了名字和姓氏,只是电子邮件或其他字段...出于某种原因,苹果正在根据此进行排序..电子邮件地址为“example@example.com”的空复合名称将出现在联系人下方“Edward”...所以创建一个备用的东西是有意义的:如果复合名称为空,则查找电子邮件地址

      【讨论】:

        猜你喜欢
        • 2011-02-23
        • 2011-02-23
        • 2012-08-18
        • 1970-01-01
        • 2021-01-12
        • 2015-10-01
        • 2021-08-20
        相关资源
        最近更新 更多