1

如何访问与我认为是自定义标记的关系联系人数据相关的只读和/或可变联系人记录?

例如,我有与联系人关联的儿媳、丈夫或儿子自定义标签 我是否需要 CNLabeledValue CNLabelContactRelationChild?我需要什么来阅读这些或从联系人数据中获取这些自定义标签?

4

1 回答 1

2

这是我为了将关系分配给联系人并能够使用关系获取它而设法做的事情

var myNewContact = CNMutableContact()
let myRelation = CNContactRelation(name: "mommy")
let myMom = CNLabeledValue(label: CNLabelContactRelationMother, value: myRelation)
 myNewContact.contactRelations.append(myMom)

// add additional info to your contact such as name, email, family
// save your contact

let keysToFetch = [CNContactGivenNameKey, CNContactRelationsKey, CNContactEmailAddressesKey]    
let text =  "mommy"
    let request = CNContactFetchRequest(keysToFetch: keysToFetch)
        do {
            try store.enumerateContactsWithFetchRequest(request) {
                contact, stop in
                for var i = 0; i < contact.contactRelations.count; i++ {
                    if (contact.contactRelations[i].valueForKey("value")?.valueForKey("name")!)! as? String == text
                    {
                    print(contact.givenName)
                    print(contact.identifier)
                   }
                }
            }
        } catch let err{
            print(err)
        }
    }
于 2016-03-15T12:27:55.300 回答