<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVCapturePhotoOutputReadinessCoordinator",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCapturePhotoOutputReadinessCoordinator"
  },
  "title" : "AVCapturePhotoOutputReadinessCoordinator"
}
-->

# AVCapturePhotoOutputReadinessCoordinator

An object that monitors changes to a photo output’s capture readiness.

```
class AVCapturePhotoOutputReadinessCoordinator
```

## Overview

Use this object to coordinate user interface updates on the main queue with a [`AVCapturePhotoOutput`](/documentation/AVFoundation/AVCapturePhotoOutput) that runs on a background queue. Adopt the [`AVCapturePhotoOutputReadinessCoordinatorDelegate`](/documentation/AVFoundation/AVCapturePhotoOutputReadinessCoordinatorDelegate) protocol in your app and set its implementation as the coordinator’s delegate object to receive callbacks as the associated photo output’s [`captureReadiness`](/documentation/AVFoundation/AVCapturePhotoOutput/captureReadiness-swift.property) state changes.

You can track additional capture requests with this object by calling its [`startTrackingCaptureRequest(using:)`](/documentation/AVFoundation/AVCapturePhotoOutputReadinessCoordinator/startTrackingCaptureRequest(using:)) method. You can use it to synchronously update shutter button availability and appearance and on the main thread while calling the photo output’s [`capturePhoto(with:delegate:)`](/documentation/AVFoundation/AVCapturePhotoOutput/capturePhoto(with:delegate:)) method asynchronously on a background queue.

## Topics

### Creating a coordinator

[`init(photoOutput:)`](/documentation/AVFoundation/AVCapturePhotoOutputReadinessCoordinator/init(photoOutput:))

Creates an object that helps coordinate user interface changes with a photo output that runs on a background queue.

### Setting the delegate object

[`delegate`](/documentation/AVFoundation/AVCapturePhotoOutputReadinessCoordinator/delegate)

The coordinator’s delegate object.

### Performing tracking requests

[`startTrackingCaptureRequest(using:)`](/documentation/AVFoundation/AVCapturePhotoOutputReadinessCoordinator/startTrackingCaptureRequest(using:))

Tracks a capture request that uses the specified photo settings.

[`stopTrackingCaptureRequest(using:)`](/documentation/AVFoundation/AVCapturePhotoOutputReadinessCoordinator/stopTrackingCaptureRequest(using:))

Stop tracking the capture request represented by the specified photo setting’s unique identifier.

### Determining readiness for capture

[`captureReadiness`](/documentation/AVFoundation/AVCapturePhotoOutputReadinessCoordinator/captureReadiness)

A value that indicates whether the coordinator’s photo output is ready to respond to new capture requests in a timely manner.



---

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)