---
title: ICScannerDevice
framework: imagecapturecore
role: symbol
role_heading: Class
path: imagecapturecore/icscannerdevice
---

# ICScannerDevice

An object that represents a scanner.

## Declaration

```swift
class ICScannerDevice
```

## Overview

Overview An instance of ICScannerDevice class is intended to be used by the ICScannerDeviceView object. The ICScannerDeviceView class encapsulates the complexities of setting scan parameters, performing scans and saving the result. The developer should consider using ICScannerDeviceView instead of building their own views using the ICScannerDevice object.

## Topics

### Selecting a Functional Unit

- [availableFunctionalUnitTypes](imagecapturecore/icscannerdevice/availablefunctionalunittypes.md)
- [selectedFunctionalUnit](imagecapturecore/icscannerdevice/selectedfunctionalunit.md)
- [requestSelect(_:)](imagecapturecore/icscannerdevice/requestselect(_:).md)
- [ICScannerFunctionalUnitType](imagecapturecore/icscannerfunctionalunittype.md)
- [ICScannerFunctionalUnitState](imagecapturecore/icscannerfunctionalunitstate.md)

### Performing a Scan

- [requestOpenSession(withCredentials:password:)](imagecapturecore/icscannerdevice/requestopensession(withcredentials:password:).md)
- [requestOverviewScan()](imagecapturecore/icscannerdevice/requestoverviewscan().md)
- [requestScan()](imagecapturecore/icscannerdevice/requestscan().md)
- [cancelScan()](imagecapturecore/icscannerdevice/cancelscan().md)
- [documentName](imagecapturecore/icscannerdevice/documentname.md)
- [documentUTI](imagecapturecore/icscannerdevice/documentuti.md)
- [downloadsDirectory](imagecapturecore/icscannerdevice/downloadsdirectory.md)
- [transferMode](imagecapturecore/icscannerdevice/transfermode.md)
- [maxMemoryBandSize](imagecapturecore/icscannerdevice/maxmemorybandsize.md)

### Logging into a Protected Device

- [defaultUsername](imagecapturecore/icscannerdevice/defaultusername.md)

## Relationships

### Inherits From

- [ICDevice](imagecapturecore/icdevice.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Scanners

- [ICScannerDeviceDelegate](imagecapturecore/icscannerdevicedelegate.md)
- [Scanner Configuration](imagecapturecore/scanner-configuration.md)
