---
title: ContactItemChangeObserver
framework: ContactProvider
role: symbol
role_heading: Protocol
platforms: [iOS 18.0+, iPadOS 18.0+]
path: contactprovider/contactitemchangeobserver
---

# ContactItemChangeObserver

A protocol that defines a system observer that receives a resumable enumeration of changed contact items.

## Declaration

```swift
protocol ContactItemChangeObserver
```

## Overview

Overview Your implementation of enumerateChanges(startingAt:for:) receives an observer that conforms to this type. As you enumerate over your contacts, you provide them to the observer with the didUpdate(_:) and didDelete(_:) methods.

## Topics

### Providing change data

- [didUpdate(_:)](contactprovider/contactitemchangeobserver/didupdate(_:).md)
- [ContactItem](contactprovider/contactitem.md)
- [didDelete(_:)](contactprovider/contactitemchangeobserver/diddelete(_:).md)
- [ContactItem.Identifier](contactprovider/contactitem/identifier.md)

### Ending enumeration

- [didFinishEnumeratingChanges(upTo:moreComing:)](contactprovider/contactitemchangeobserver/didfinishenumeratingchanges(upto:morecoming:).md)
- [ContactItemSyncAnchor](contactprovider/contactitemsyncanchor.md)
- [didFinishEnumeratingChangesWithError(_:)](contactprovider/contactitemchangeobserver/didfinishenumeratingchangeswitherror(_:).md)

### Optimizing observer batching

- [suggestedBatchSize](contactprovider/contactitemchangeobserver/suggestedbatchsize.md)

## See Also

### Receiving contacts

- [ContactItemContentObserver](contactprovider/contactitemcontentobserver.md)
