我正在尝试获取所选联系人的所有相关联系人。这样做的方式似乎是通过mycontact.contactRelations
。这会给出一个CNLabeledValue
数组,其中每个数组都包含CNContactRelation
作为其值。然后有一个name
属性,但它似乎没有别的。
CNContact.ContractRelations
的Xamarin文档似乎表明我应该能够从CNContact
获取相应的CNContactRelation
但是除了搜索之外我无法在objc中看到这样做对于具有匹配名称的联系人。这可能是也可能不是我之后的联系,即使他们也与mycontact
同名的联系人有关系。
CNLabeledValue
上的标识符似乎是指标签而不是相关联系人,或者如果我从CNContactPickerViewController
中选择该联系人,则至少似乎与标识符不匹配。
有没有办法在objc中获取相关联系人的CNContact
答案 0 :(得分:0)
“通讯录”中的“相关名称”字段不存储链接,只存储名称。如果您要在iOS或OS X联系人应用程序中编辑相关名称,您将从用户角度注意到这一点 - 它只是一个自由形式的文本字段。那些应用程序(和其他系统应用程序)会识别相关名称何时与另一个联系人的名称相匹配(这就是为什么你可以让Siri给你的母亲打电话等),但是他们也会让你为你没有的人写下名字联系信息。
所以CNContactRelation
只包含一个字符串,找到匹配相关名称的联系人(如果有的话)的唯一方法是搜索联系人存储。使用unifiedContactsMatchingPredicate:keysToFetch:error:
进行搜索,并通过调用predicateForContactsMatchingName:
构建谓词。