<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "ImageCaptureCore",
  "identifier" : "/documentation/ImageCaptureCore/ICCameraDeviceDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "ImageCaptureCore"
    ],
    "preciseIdentifier" : "c:objc(pl)ICCameraDeviceDelegate"
  },
  "title" : "ICCameraDeviceDelegate"
}
-->

# ICCameraDeviceDelegate

Methods for detecting cameras, getting metadata and thumbnails, handling access and capability changes, and performing other actions on connected cameras.

```
protocol ICCameraDeviceDelegate : ICDeviceDelegate
```

## Topics

### Determining Device Readiness

[`-  deviceDidBecomeReadyWithCompleteContentCatalog:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/deviceDidBecomeReady(withCompleteContentCatalog:))

Tells the client that the camera device is done enumerating its content and is ready to receive requests.

### Adding Objects

[`-  cameraDevice:didAddItems:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didAdd:)-8oukd)

Tells the client when objects are added to the device.

[`-  cameraDevice:didAddItem:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didAdd:)-9pnzo)

Tells the client when an object is added to the device.

### Removing Objects

[`-  cameraDevice:didRemoveItems:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didRemove:)-4m5al)

Tells the client when objects are removed from the device.

[`-  cameraDevice:didCompleteDeleteFilesWithError:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didCompleteDeleteFilesWithError:))

Tells the client when the camera completes a delete operation.

[`-  cameraDevice:didRemoveItem:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didRemove:)-9rz34)

Tells the client when an object is removed from the device.

### Renaming Objects

[`-  cameraDevice:didRenameItems:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didRenameItems:))

Tells the client when one or more objects are renamed on the device.

### Receiving Metadata

[`-  cameraDevice:didReceiveMetadata:forItem:error:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didReceiveMetadata:for:error:))

Tells the client when the metadata requested for an item on a camera is available.

[`-  cameraDevice:shouldGetMetadataOfItem:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:shouldGetMetadataOf:))

Tells the client when the camera is about to execute queued requests for the metadata of a specific item.

[`-  cameraDevice:didReceiveMetadataForItem:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didReceiveMetadataFor:))

Tells the client when the metadata requested for an item on a camera is available.

### Receiving Thumbnails

[`-  cameraDevice:didReceiveThumbnail:forItem:error:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didReceiveThumbnail:for:error:))

Tells the client when the requested thumbnail is available.

[`-  cameraDevice:didReceiveThumbnailForItem:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didReceiveThumbnailFor:))

Tells the client when the requested thumbnail is available.

[`-  cameraDevice:shouldGetThumbnailOfItem:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:shouldGetThumbnailOf:))

Tells the client when the camera is about to execute queued requests for the thumbnail of a specific item.

### Responding to Capability Changes

[`-  cameraDeviceDidChangeCapability:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDeviceDidChangeCapability(_:))

Tells the client when a capability of a camera changes.

### Responding to Access Restrictions

[`-  cameraDeviceDidEnableAccessRestriction:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDeviceDidEnableAccessRestriction(_:))

Tells the client when an Apple device has been locked, and media is unavailable until the restriction has been removed.

[`-  cameraDeviceDidRemoveAccessRestriction:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDeviceDidRemoveAccessRestriction(_:))

Tells the client when an Apple device has been unlocked, paired to the host, and media is available.

### Responding to PTP Events

[`-  cameraDevice:didReceivePTPEvent:`](/documentation/ImageCaptureCore/ICCameraDeviceDelegate/cameraDevice(_:didReceivePTPEvent:))

Tells the client about a PTP event.

## Relationships

### Inherits From

[`ICDeviceDelegate`](/documentation/ImageCaptureCore/ICDeviceDelegate)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

---

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)