错误域= CNErrorDomain代码= 200“更新记录不存在”
问题描述:
当我运行下面的代码,我在最后try语句此错误:错误域= CNErrorDomain代码= 200“更新记录不存在”
错误域= CNErrorDomain代码= 200“更新记录不存在” 的UserInfo = {NSLocalizedFailureReason =该保存请求失败,因为它 更新不存在或已被删除的记录, CNInvalidRecords =( ‘’),NSLocalizedDescription =更新的记录不 存在}
我不明白这个错误。正如你所看到的,CNGroup的记录显然存在,因为我刚创建它没有错误。我也在模拟器中检查过。联系人和组都存在。
let store = CNContactStore()
let defaultContainerIdentifier = store.defaultContainerIdentifier()
let cnMutableGroup = CNMutableGroup()
cnMutableGroup.name = "Temple5"
let groupIdentifier = cnMutableGroup.identifier
let cnMutableContact = CNMutableContact()
cnMutableContact.familyName = "Ralph5"
cnMutableContact.givenName = "Rolfson5"
let contactIdentifier = cnMutableContact.identifier
let saveRequest = CNSaveRequest()
saveRequest.add(cnMutableGroup, toContainerWithIdentifier: defaultContainerIdentifier)
saveRequest.add(cnMutableContact, toContainerWithIdentifier: defaultContainerIdentifier)
do {
try store.execute(saveRequest)
} catch let error as NSError {
print(error)
}
let predicateGroups = CNGroup.predicateForGroups(withIdentifiers: [groupIdentifier])
var cnGroups: [CNGroup] = []
do {
cnGroups = try store.groups(matching: predicateGroups)
} catch let error as NSError {
print(error)
}
let cnGroup = cnGroups.first!
let predicateContacts = CNContact.predicateForContacts(withIdentifiers: [contactIdentifier])
let keys = [CNContactGivenNameKey, CNContactPhoneNumbersKey]
var cnContacts: [CNContact] = []
do {
cnContacts = try store.unifiedContacts(matching: predicateContacts, keysToFetch: keys as [CNKeyDescriptor])
} catch let error as NSError {
print(error)
}
let cnContact = cnContacts.first!
saveRequest.addMember(cnContact, to: cnGroup)
do {
try store.execute(saveRequest)
} catch let error as NSError {
print(error)
}
答
尝试将nil传递给您的容器标识符。
saveRequest.add(cnMutableContact, toContainerWithIdentifier: nil)
嗨,@ShinehahGnolaum,我有同样的问题,你知道吗? – Jerome
@Jerome不,我没有。抱歉。 – ShinehahGnolaum