使用多部无法使用 swift 3 的手机创建新联系人

create new contact with multiple phones not working on swift 3

我想与多个 phone 建立新的联系。我不知道为什么,但我的 swift 代码只创建了 1 个 phone 号码。 与创建新联系人相关的示例很少,所以我想我的问题会对其他人有所帮助。

private func createNewContact(myContact : AgregarContactoViewModel) {
    let store = CNContactStore()
    let contact = CNMutableContact()

    // Name
    contact.familyName = myContact.getName()

    // Phones
    for i in (0..<myContact.getPhones().count) {
       let phone = CNLabeledValue(label: CNLabelOther, value: CNPhoneNumber(stringValue: myContact.getPhones()[i]))
       contact.phoneNumbers.append(phone)
    }

    // Call the controller and create new contact
    let controller = CNContactViewController(forNewContact : contact)
    controller.contactStore = store
    controller.delegate = self
    self.navigationController?.setNavigationBarHidden(false, animated: true)
    self.navigationController?.pushViewController(controller, animated: true)
}

谢谢

我使用示例代码 Programming-iOS-Book-Examples written by Matt Neuburg 找到了解决方案:

而不是

let phone = CNLabeledValue(label: CNLabelOther, value: CNPhoneNumber(stringValue: myContact.getPhones()[i]))
   contact.phoneNumbers.append(phone)

解决方案是:

   contact.phoneNumbers.append(CNLabeledValue(label: "phone", value: CNPhoneNumber(stringValue: myContact.getPhones()[i])))

感谢 Matt Neuburg 的评论和出色的编码!