<!--
{
  "availability" : [
    "iOS: 2.0.0 -",
    "iPadOS: 2.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.0.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Foundation",
  "identifier" : "/documentation/Foundation/ProgressUserInfoKey",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Foundation"
    ],
    "preciseIdentifier" : "c:@T@NSProgressUserInfoKey"
  },
  "title" : "ProgressUserInfoKey"
}
-->

# ProgressUserInfoKey

Keys for the user info dictionary that affect the autogenerated localized additional description string.

```
struct ProgressUserInfoKey
```

## Discussion

Enhance the autogenerated description that [`localizedAdditionalDescription`](/documentation/Foundation/Progress/localizedAdditionalDescription) provides by including keys and related values in the user info dictionary. For example, if you provide the keys [`fileCompletedCountKey`](/documentation/Foundation/ProgressUserInfoKey/fileCompletedCountKey) and [`fileTotalCountKey`](/documentation/Foundation/ProgressUserInfoKey/fileTotalCountKey), the [`localizedAdditionalDescription`](/documentation/Foundation/Progress/localizedAdditionalDescription) method uses the values from those keys to provide strings showing the number of completed and total files.

## Topics

### Creating Keys

[`init(_:)`](/documentation/Foundation/ProgressUserInfoKey/init(_:))

Creates a new key using the specified string.

[`init(rawValue:)`](/documentation/Foundation/ProgressUserInfoKey/init(rawValue:))

Creates a new key using the raw value of a string you specify.

### Using General Keys

[`estimatedTimeRemainingKey`](/documentation/Foundation/ProgressUserInfoKey/estimatedTimeRemainingKey)

A key with a corresponding value that represents the time remaining, in seconds.

[`throughputKey`](/documentation/Foundation/ProgressUserInfoKey/throughputKey)

A key with a corresponding value that indicates the speed of data processing, in bytes per second.

### Using File Operation Keys

[`fileAnimationImageKey`](/documentation/Foundation/ProgressUserInfoKey/fileAnimationImageKey)

A key with a corresponding value that is an image, typically an icon to represent the file.

[`fileAnimationImageOriginalRectKey`](/documentation/Foundation/ProgressUserInfoKey/fileAnimationImageOriginalRectKey)

A key with a corresponding value that indicates the starting location of the image onscreen.

[`fileCompletedCountKey`](/documentation/Foundation/ProgressUserInfoKey/fileCompletedCountKey)

A key with a corresponding value that represents the number of completed files.

[`fileIconKey`](/documentation/Foundation/ProgressUserInfoKey/fileIconKey)

A key with a corresponding value that must be an image, typically an icon to represent the file.

[`fileOperationKindKey`](/documentation/Foundation/ProgressUserInfoKey/fileOperationKindKey)

A key with a corresponding value that indicates the kind of file operation a progress object represents.

[`fileTotalCountKey`](/documentation/Foundation/ProgressUserInfoKey/fileTotalCountKey)

A key with a corresponding value that represents the total number of files within a file operation.

[`fileURLKey`](/documentation/Foundation/ProgressUserInfoKey/fileURLKey)

A key with a corresponding value that represents the file URL of a file operation for the progress object.



---

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)