2016-11-25 67 views
0

在Swift 3中可以批量删除联系人的特定选择中的Anniversary字段吗?iOS Swift 3 - 删除联系人信息字段周年纪念

我发现了将联系人周年纪念信息添加到联系人的代码,但我正在寻找代码来删除特定联系人的现有周年纪念信息。

样品添加:

//add anniversary 
let anniversaryDate = NSDateComponents() 
anniversaryDate.month = 6 
anniversaryDate.day = 13 
let anniversary = CNLabeledValue(label: "Anniversary", 
    value: anniversaryDate) 
fooBar.dates = [anniversary] 

//save 
let request = CNSaveRequest() 
request.addContact(fooBar, toContainerWithIdentifier: nil) 
do{ 
    try storeo.executeSaveRequest(request) 
    print("Successfully stored the contact") 
} catch let err{ 
    print("Failed to save the contact. \(err)") 
} 

回答

0

你可以筛选日期,然后更新联系人。

let mutableContact = contact.mutableCopy() as! CNMutableContact 

let dates = mutableContact.dates.filter({ $0.label != "Anniversary" }) 

mutableContact.dates = dates 

let request = CNSaveRequest() 
request.updateContact(mutableContact) 

do { 

    try contactStore.executeSaveRequest(request) 

} catch let error { 

    print("Failed to updated contact. \(error)") 
}