---
title: CGDataConsumer
framework: coregraphics
role: symbol
role_heading: Class
path: coregraphics/cgdataconsumer
---

# CGDataConsumer

An abstraction for data-writing tasks that eliminates the need to manage a raw memory buffer.

## Declaration

```swift
class CGDataConsumer
```

## Overview

Overview Most apps should use CGImageDestination objects instead.

## Topics

### Creating Data Consumers

- [init(info:cbks:)](coregraphics/cgdataconsumer/init(info:cbks:).md)
- [init(url:)](coregraphics/cgdataconsumer/init(url:).md)
- [init(data:)](coregraphics/cgdataconsumer/init(data:).md)
- [CGDataConsumerCallbacks](coregraphics/cgdataconsumercallbacks.md)
- [CGDataConsumerPutBytesCallback](coregraphics/cgdataconsumerputbytescallback.md)
- [CGDataConsumerReleaseInfoCallback](coregraphics/cgdataconsumerreleaseinfocallback.md)

### Working with Core Foundation Types

- [typeID](coregraphics/cgdataconsumer/typeid.md)

## Relationships

### Conforms To

- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)

## See Also

### Related Documentation

- [Quartz 2D Programming Guide](apple-archive/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction.md)

### Utility and Support Classes

- [CGDataProvider](coregraphics/cgdataprovider.md)
- [CGShading](coregraphics/cgshading.md)
- [CGGradient](coregraphics/cggradient.md)
- [CGFunction](coregraphics/cgfunction.md)
- [CGPattern](coregraphics/cgpattern.md)
