从CNContactRelation

时间:2016-01-13 21:15:59

标签: ios cncontact

我正在尝试获取所选联系人的所有相关联系人。这样做的方式似乎是通过mycontact.contactRelations。这会给出一个CNLabeledValue数组,其中每个数组都包含CNContactRelation作为其值。然后有一个name属性,但它似乎没有别的。

CNContact.ContractRelations的Xamarin文档似乎表明我应该能够从CNContact获取相应的CNContactRelation但是除了搜索之外我无法在objc中看到这样做对于具有匹配名称的联系人。这可能是也可能不是我之后的联系,即使他们也与mycontact同名的联系人有关系。

CNLabeledValue上的标识符似乎是指标签而不是相关联系人,或者如果我从CNContactPickerViewController中选择该联系人,则至少似乎与标识符不匹配。

有没有办法在objc中获取相关联系人的CNContact

1 个答案:

答案 0 :(得分:0)

“通讯录”中的“相关名称”字段不存储链接,只存储名称。如果您要在iOS或OS X联系人应用程序中编辑相关名称,您将从用户角度注意到这一点 - 它只是一个自由形式的文本字段。那些应用程序(和其他系统应用程序)会识别相关名称何时与另一个联系人的名称相匹配(这就是为什么你可以让Siri给你的母亲打电话等),但是他们也会让你为你没有的人写下名字联系信息。

所以CNContactRelation只包含一个字符串,找到匹配相关名称的联系人(如果有的话)的唯一方法是搜索联系人存储。使用unifiedContactsMatchingPredicate:keysToFetch:error:进行搜索,并通过调用predicateForContactsMatchingName:构建谓词。