更新 phone 联系人数组中的单个项目
Update phone contact single item in array
我正在尝试更新 iphone 联系人中的 1 个项目。我正在更新电子邮件数组,不想影响数组中的其他人。
例如,我正在从我的应用中更改 "home" 电子邮件地址,但如果他们的 phone 联系人中也有 "work" 电子邮件,它会删除它并只放置在新的。我需要将所有其他字段保留在数组中。 phone 或地址相同。
这是我的更新:
let homeEmailEntry : String = email!
let homeEmail = CNLabeledValue(label:CNLabelHome, value:homeEmailEntry as NSString)
contactToUpdate.emailAddresses = [homeEmail]
let saveRequest = CNSaveRequest()
saveRequest.update(contactToUpdate)
try store.execute(saveRequest)
这会添加家庭电子邮件,但会删除工作电子邮件或数组中的任何其他内容。
您需要将现有电子邮件地址与要添加的新电子邮件地址连接起来。
contact.emailAddresses = contactToUpdate.emailAddresses + [homeEmail]
或者,您可以附加它。
contact.emailAddresses.append(homeEmail)
我不确定如果已经有家庭电子邮件地址会发生什么,但您可以在添加新地址之前删除现有的家庭电子邮件地址。
contact.emailAddresses = contact.emailAddresses.filter({ [=12=].label != CNLabelHome }) + [homeEmail]
我正在尝试更新 iphone 联系人中的 1 个项目。我正在更新电子邮件数组,不想影响数组中的其他人。
例如,我正在从我的应用中更改 "home" 电子邮件地址,但如果他们的 phone 联系人中也有 "work" 电子邮件,它会删除它并只放置在新的。我需要将所有其他字段保留在数组中。 phone 或地址相同。
这是我的更新:
let homeEmailEntry : String = email!
let homeEmail = CNLabeledValue(label:CNLabelHome, value:homeEmailEntry as NSString)
contactToUpdate.emailAddresses = [homeEmail]
let saveRequest = CNSaveRequest()
saveRequest.update(contactToUpdate)
try store.execute(saveRequest)
这会添加家庭电子邮件,但会删除工作电子邮件或数组中的任何其他内容。
您需要将现有电子邮件地址与要添加的新电子邮件地址连接起来。
contact.emailAddresses = contactToUpdate.emailAddresses + [homeEmail]
或者,您可以附加它。
contact.emailAddresses.append(homeEmail)
我不确定如果已经有家庭电子邮件地址会发生什么,但您可以在添加新地址之前删除现有的家庭电子邮件地址。
contact.emailAddresses = contact.emailAddresses.filter({ [=12=].label != CNLabelHome }) + [homeEmail]