---
title: ICDeviceDelegate
framework: imagecapturecore
role: symbol
role_heading: Protocol
path: imagecapturecore/icdevicedelegate
---

# ICDeviceDelegate

Methods for responding to device events and changes.

## Declaration

```swift
protocol ICDeviceDelegate : NSObjectProtocol
```

## Overview

Overview Unless otherwise noted, all completion blocks execute on the calling thread.

## Topics

### Responding to Device Events

- [device(_:didOpenSessionWithError:)](imagecapturecore/icdevicedelegate/device(_:didopensessionwitherror:).md)
- [device(_:didCloseSessionWithError:)](imagecapturecore/icdevicedelegate/device(_:didclosesessionwitherror:).md)
- [didRemove(_:)](imagecapturecore/icdevicedelegate/didremove(_:).md)
- [deviceDidBecomeReady(_:)](imagecapturecore/icdevicedelegate/devicedidbecomeready(_:).md)
- [device(_:didReceiveStatusInformation:)](imagecapturecore/icdevicedelegate/device(_:didreceivestatusinformation:).md)
- [device(_:didEncounterError:)](imagecapturecore/icdevicedelegate/device(_:didencountererror:).md)
- [device(_:didEjectWithError:)](imagecapturecore/icdevicedelegate/device(_:didejectwitherror:).md)

### Responding to Device Changes

- [deviceDidChangeName(_:)](imagecapturecore/icdevicedelegate/devicedidchangename(_:).md)
- [deviceDidChangeSharingState(_:)](imagecapturecore/icdevicedelegate/devicedidchangesharingstate(_:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Inherited By

- [ICCameraDeviceDelegate](imagecapturecore/iccameradevicedelegate.md)
- [ICScannerDeviceDelegate](imagecapturecore/icscannerdevicedelegate.md)

## See Also

### Managing a Device

- [delegate](imagecapturecore/icdevice/delegate.md)
- [hasOpenSession](imagecapturecore/icdevice/hasopensession.md)
- [requestOpenSession()](imagecapturecore/icdevice/requestopensession().md)
- [requestOpenSession(options:completion:)](imagecapturecore/icdevice/requestopensession(options:completion:).md)
- [requestSendMessage(_:outData:maxReturnedDataSize:sendMessageDelegate:didSendMessageSelector:contextInfo:)](imagecapturecore/icdevice/requestsendmessage(_:outdata:maxreturneddatasize:sendmessagedelegate:didsendmessageselector:contextinfo:).md)
- [requestCloseSession()](imagecapturecore/icdevice/requestclosesession().md)
- [requestCloseSession(options:completion:)](imagecapturecore/icdevice/requestclosesession(options:completion:).md)
- [requestEject()](imagecapturecore/icdevice/requesteject().md)
- [requestEject(completion:)](imagecapturecore/icdevice/requesteject(completion:).md)
