Swift 删除联系人后,由于iCloud,联系人记录将重新显示?

Swift 删除联系人后,由于iCloud,联系人记录将重新显示?,swift,icloud,cncontact,Swift,Icloud,Cncontact,在真实设备上测试contact框架时,我观察到了以下行为(但在模拟器上测试时,我从未观察到同样的问题) 当我使用以下代码将所有联系人分组以进行删除时 do { let allContainers = try store.containers(matching: nil) let keysToFetch = [CNContactIdentifierKey] as [CNKeyDescriptor] for container in allContainers { N

在真实设备上测试contact框架时,我观察到了以下行为(但在模拟器上测试时,我从未观察到同样的问题)

当我使用以下代码将所有联系人分组以进行删除时

do {
   let allContainers = try store.containers(matching: nil)
   let keysToFetch = [CNContactIdentifierKey] as [CNKeyDescriptor]
   for container in allContainers {
       NSLog("Iterating container with name \(container.name) and id \(container.identifier)")
       let fetchPredicate = CNContact.predicateForContactsInContainer(withIdentifier: container.identifier)
                           
       let containerContacts = try store.unifiedContacts(matching: fetchPredicate,
                                                        keysToFetch: keysToFetch)
       for contact in containerContacts {
           if let mutableContact = contact.mutableCopy() as? CNMutableContact {
               request.delete(mutableContact)
           }
       }
   }
   try CNContactStore().execute(request)
} catch {
   NSLog("Failed to remove contacts due to \(error)")
}

我注意到代码最初运行得很好,联系人最初会消失,但1-2分钟后,联系人会重新出现在我的iPhone上。这不是100%可重复,但在50%的时间内可重复。如果禁用联系人的iCloud sync,则症状将不存在。所以我猜这和iCloud同步有关

所以问题是,有没有可能要求iCloud实现本地删除操作,从而不通过恢复这些触点来覆盖本地删除