swift - 如何获取新创建的联系人的contact.identifier

标签 swift contacts cncontactstore

func createContact() {

        let store = CNContactStore()
        let contactToAdd = CNMutableContact()
        contactToAdd.phoneticGivenName = "Harshad"
        contactToAdd.phoneticMiddleName = "I"
        contactToAdd.phoneticFamilyName = "Pipaliya"

        contactToAdd.emailAddresses.append(CNLabeledValue(label: CNLabelPhoneNumberMain, value: "test@icloud.com"))

        let saveRequest = CNSaveRequest()
        saveRequest.add(contactToAdd, toContainerWithIdentifier: nil)
        do {
            try store.execute(saveRequest)   // Here I need to get identifier of created new contact
        }
        catch {
            print(error)
        }
    }

我尝试从应用程序创建标识符,但无法做到。

提前致谢

最佳答案

这是创建联系人时获取联系人id的方式

func createContact() {

        let store = CNContactStore()
        let contactToAdd = CNMutableContact()
        contactToAdd.phoneticGivenName = "Harshad"
        contactToAdd.phoneticMiddleName = "I"
        contactToAdd.phoneticFamilyName = "Pipaliya"

        contactToAdd.emailAddresses.append(CNLabeledValue(label: CNLabelPhoneNumberMain, value: "test@icloud.com"))

        let saveRequest = CNSaveRequest()
        saveRequest.add(contactToAdd, toContainerWithIdentifier: nil)
        do {
            try store.execute(saveRequest)
            if contactToAdd.isKeyAvailable(CNContactIdentifierKey) {
                print(contactToAdd.identifier) // this is the wat to get identifier of contact when creating new
            }
        }
        catch {
            print(error)
        }
    }

关于swift - 如何获取新创建的联系人的contact.identifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52536573/

相关文章:

iOS:从地址簿中删除联系人时出错:[CNDataMapperContactStore executeSaveRequest:error:]

java - 选择应用联系人

testing - 接触测试位掩码无法正常工作

swift - 在 WatchOS 4 上录制音频

swift - 如何以编程方式保存 NSDocument?

ios - iOS 13 中与历史相关的 Contacts 框架类有哪些?

swift - Swift以编程方式添加本地联系人容器

ios - 联系人框架等同于 ABAddressBook.ABAddressBookRegisterExternalChangeCallback

objective-c - 为什么全新的 Mac 不显示我的屏幕保护程序?

arrays - Firebase/Swift 在删除时更新 TableView 值?