---
title: CKSyncEngineEvent
framework: cloudkit
role: symbol
role_heading: Class
path: cloudkit/cksyncengineevent
---

# CKSyncEngineEvent

An event that occurs during a sync operation.

## Declaration

```occ
@interface CKSyncEngineEvent : NSObject
```

## Overview

Overview All sync operation events descend from this base class, and as such you don’t create instances of it directly. Instead, the sync engine dispatches them to your app’s delegate, periodically, throughout a sync operation. See the documentation for each event class for more details about when and why an event is posted. Use the type property to determine the event’s proper type, and then use the corresponding convenience property to retrieve a reference to the event that’s downcast to the appropriate subclass. For example, when CloudKit vends an event with type set to CKSyncEngineEventType.stateUpdate, use the stateUpdateEvent property to get the downcast reference. important: It is a fatal error to access a non-corresponding convenience property.

## Topics

### Determining the type

- [type](cloudkit/cksyncengineevent/type.md)
- [CKSyncEngineEventType](cloudkit/cksyncengineeventtype.md)

### Accessing account changes

- [accountChangeEvent](cloudkit/cksyncengineevent/accountchangeevent.md)
- [CKSyncEngineAccountChangeEvent](cloudkit/cksyncengineaccountchangeevent.md)

### Accessing fetch events

- [willFetchChangesEvent](cloudkit/cksyncengineevent/willfetchchangesevent.md)
- [CKSyncEngineWillFetchChangesEvent](cloudkit/cksyncenginewillfetchchangesevent.md)
- [willFetchRecordZoneChangesEvent](cloudkit/cksyncengineevent/willfetchrecordzonechangesevent.md)
- [CKSyncEngineWillFetchRecordZoneChangesEvent](cloudkit/cksyncenginewillfetchrecordzonechangesevent.md)
- [fetchedDatabaseChangesEvent](cloudkit/cksyncengineevent/fetcheddatabasechangesevent.md)
- [CKSyncEngineFetchedDatabaseChangesEvent](cloudkit/cksyncenginefetcheddatabasechangesevent.md)
- [fetchedRecordZoneChangesEvent](cloudkit/cksyncengineevent/fetchedrecordzonechangesevent.md)
- [CKSyncEngineFetchedRecordZoneChangesEvent](cloudkit/cksyncenginefetchedrecordzonechangesevent.md)
- [didFetchRecordZoneChangesEvent](cloudkit/cksyncengineevent/didfetchrecordzonechangesevent.md)
- [CKSyncEngineDidFetchRecordZoneChangesEvent](cloudkit/cksyncenginedidfetchrecordzonechangesevent.md)
- [didFetchChangesEvent](cloudkit/cksyncengineevent/didfetchchangesevent.md)
- [CKSyncEngineDidFetchChangesEvent](cloudkit/cksyncenginedidfetchchangesevent.md)

### Accessing send events

- [willSendChangesEvent](cloudkit/cksyncengineevent/willsendchangesevent.md)
- [CKSyncEngineWillSendChangesEvent](cloudkit/cksyncenginewillsendchangesevent.md)
- [sentDatabaseChangesEvent](cloudkit/cksyncengineevent/sentdatabasechangesevent.md)
- [CKSyncEngineSentDatabaseChangesEvent](cloudkit/cksyncenginesentdatabasechangesevent.md)
- [sentRecordZoneChangesEvent](cloudkit/cksyncengineevent/sentrecordzonechangesevent.md)
- [CKSyncEngineSentRecordZoneChangesEvent](cloudkit/cksyncenginesentrecordzonechangesevent.md)
- [didSendChangesEvent](cloudkit/cksyncengineevent/didsendchangesevent.md)
- [CKSyncEngineDidSendChangesEvent](cloudkit/cksyncenginedidsendchangesevent.md)

### Accessing state updates

- [stateUpdateEvent](cloudkit/cksyncengineevent/stateupdateevent.md)
- [CKSyncEngineStateUpdateEvent](cloudkit/cksyncenginestateupdateevent.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [CKSyncEngineAccountChangeEvent](cloudkit/cksyncengineaccountchangeevent.md)
- [CKSyncEngineDidFetchChangesEvent](cloudkit/cksyncenginedidfetchchangesevent.md)
- [CKSyncEngineDidFetchRecordZoneChangesEvent](cloudkit/cksyncenginedidfetchrecordzonechangesevent.md)
- [CKSyncEngineDidSendChangesEvent](cloudkit/cksyncenginedidsendchangesevent.md)
- [CKSyncEngineFetchedDatabaseChangesEvent](cloudkit/cksyncenginefetcheddatabasechangesevent.md)
- [CKSyncEngineFetchedRecordZoneChangesEvent](cloudkit/cksyncenginefetchedrecordzonechangesevent.md)
- [CKSyncEngineSentDatabaseChangesEvent](cloudkit/cksyncenginesentdatabasechangesevent.md)
- [CKSyncEngineSentRecordZoneChangesEvent](cloudkit/cksyncenginesentrecordzonechangesevent.md)
- [CKSyncEngineStateUpdateEvent](cloudkit/cksyncenginestateupdateevent.md)
- [CKSyncEngineWillFetchChangesEvent](cloudkit/cksyncenginewillfetchchangesevent.md)
- [CKSyncEngineWillFetchRecordZoneChangesEvent](cloudkit/cksyncenginewillfetchrecordzonechangesevent.md)
- [CKSyncEngineWillSendChangesEvent](cloudkit/cksyncenginewillsendchangesevent.md)

## See Also

### Handling sync events

- [syncEngine:handleEvent:](cloudkit/cksyncenginedelegate-3c38p/syncengine:handleevent:.md)
