<!--
{
  "availability" : [
    "iOS: 8.0.0 - 10.0.0",
    "iPadOS: 8.0.0 - 10.0.0",
    "macCatalyst: 13.1.0 - 13.1.0",
    "macOS: 10.10.0 - 10.12.0",
    "tvOS: 9.0.0 - 10.0.0",
    "visionOS: 1.0.0 - 1.0.0",
    "watchOS: 3.0.0 - 3.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "CloudKit",
  "identifier" : "/documentation/CloudKit/CKFetchRecordChangesOperation/recordChangedBlock",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "CloudKit"
    ],
    "preciseIdentifier" : "c:objc(cs)CKFetchRecordChangesOperation(py)recordChangedBlock"
  },
  "title" : "recordChangedBlock"
}
-->

# recordChangedBlock

The block to execute with the contents of a changed record.

```
var recordChangedBlock: ((CKRecord) -> Void)? { get set }
```

## Discussion

The block returns no value and takes the following parameters:

- `record`: The changed record. If you specify a value for the [`desiredKeys`](/documentation/CloudKit/CKFetchRecordChangesOperation/desiredKeys) property, the record only contains the fields in the [`desiredKeys`](/documentation/CloudKit/CKFetchRecordChangesOperation/desiredKeys) property.

The operation object executes this block once for each record in the zone with changes since the previous fetch request. Each time the block executes, it executes serially with respect to the other progress blocks of the operation. If no records change, the block doesn’t execute.

If you intend to use this block to process results, set it before executing the operation or submitting it to a queue.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)