---
title: ProgressReporting
framework: foundation
role: symbol
role_heading: Protocol
path: foundation/progressreporting
---

# ProgressReporting

An interface for objects that report progress using a single progress instance.

## Declaration

```swift
protocol ProgressReporting : NSObjectProtocol
```

## Overview

Overview Create the returned progress object using ProgressReporting. The resulting object has no parent allowing the caller to add it to a progress tree using ProgressReporting. You can return a single progress object or a progress tree. If you are creating a progress tree, add the children to the returned progress object as described in Reporting Progress for Multiple Operations. You are responsible for setting and updating the ProgressReporting of any Progress object you create.

## Topics

### Custom Class Progress

- [progress](foundation/progressreporting/progress.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [NSBundleResourceRequest](foundation/nsbundleresourcerequest.md)
- [OperationQueue](foundation/operationqueue.md)
- [URLSessionDataTask](foundation/urlsessiondatatask.md)
- [URLSessionDownloadTask](foundation/urlsessiondownloadtask.md)
- [URLSessionStreamTask](foundation/urlsessionstreamtask.md)
- [URLSessionTask](foundation/urlsessiontask.md)
- [URLSessionUploadTask](foundation/urlsessionuploadtask.md)
- [URLSessionWebSocketTask](foundation/urlsessionwebsockettask.md)

## See Also

### Progress

- [Progress](foundation/progress.md)
