Iphone 使用CNContactStore以编程方式将家庭地址保存到新联系人?斯威夫特3

Iphone 使用CNContactStore以编程方式将家庭地址保存到新联系人?斯威夫特3,iphone,swift3,cllocationmanager,cncontact,cncontactstore,Iphone,Swift3,Cllocationmanager,Cncontact,Cncontactstore,我想在我的应用程序中以编程方式创建联系人,并使用Apple contacts框架将其保存到实际联系人中。我可以用名字、姓氏创建一个,甚至可以处理日期 我从 let contact = CNMutableContact() 以 let store = CNContactStore() let saveRequest = CNSaveRequest() saveRequest.add(contact, toContainerWithIdentifier: nil) try? store.execu

我想在我的应用程序中以编程方式创建联系人,并使用Apple contacts框架将其保存到实际联系人中。我可以用名字、姓氏创建一个,甚至可以处理日期

我从

let contact = CNMutableContact()

let store = CNContactStore()
let saveRequest = CNSaveRequest()
saveRequest.add(contact, toContainerWithIdentifier: nil)
try? store.execute(saveRequest)
但我不知道如何用家庭住址来做。任何帮助都将不胜感激,谢谢。希望通过位置坐标,甚至是城市、州、街道等的字符串来实现


谢谢。

以下是创建家庭地址的方法:

let store = CNContactStore()
let contact = CNMutableContact()
contact.familyName = "Tester"
contact.givenName = "Bad"
// Address
let address = CNMutablePostalAddress()
address.street = "Your Street"
address.city = "Your City"
address.state = "Your State"
address.postalCode = "Your ZIP/Postal Code"
address.country = "Your Country"
let home = CNLabeledValue<CNPostalAddress>(label:CNLabelHome, value:address)
contact.postalAddresses = [home]
// Save
let saveRequest = CNSaveRequest()
saveRequest.add(contact, toContainerWithIdentifier: nil)
try? store.execute(saveRequest)
let store=CNContactStore()
let contact=CNMutableContact()
contact.familyName=“测试仪”
contact.givenName=“坏”
//地址
let address=CNMutablePostalAddress()
address.street=“您的街道”
address.city=“您的城市”
address.state=“您所在的州”
address.postalCode=“您的邮政编码”
address.country=“您的国家”
let home=CNLabeledValue(标签:CNLabelHome,值:地址)
contact.postalAddresses=[主页]
//拯救
让saveRequest=CNSaveRequest()
saveRequest.add(联系人,收件人身份:nil)
尝试store.execute(saveRequest)

如果要创建工作地址,则需要创建另一个
CNMutablePostalAddress
实例来保存工作地址信息,然后创建另一个标签为
CNLabelWork
CNLabeledValue
,并将新的
CNLabeledValue
实例添加到最终的
postalAddresses
数组中。

谢谢!我一定要试试这个。另外,如果没有反向地理编码,您认为有可能使用位置进行编码吗?您需要研究的是
CNPostalAddress
类。据我所知,它只需要实际的地址值。没有明显的方法可以让它通过一个我能看到的位置,但你可能想做一点更深入的挖掘。。。以防万一:)我将我的位置反向地理编码到CLLocation为我提供城市、州和街道字符串的位置。之后,我按照您的代码进行操作,在检查我的联系人应用程序时,一个位置出现空白:/Contacts中是否显示了您通过反向地理编码添加的地址信息?然后,您应该首先验证反向地理编码是否真的返回值。是吗?如果确实如此,请检查联系人的保存请求是否有效。您可以通过捕获执行save请求时抛出的任何错误来验证这一点。我的感觉是,你会发现其中一个步骤有问题。