0
が、私は最後の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)
}
こんにちは、@ShinehahGnolaum、私は同じ問題を抱えていますか? – Jerome
@Jeromeいいえ、私は持っていません。ごめんなさい。 – ShinehahGnolaum