<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macOS: 11.3.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "FileProvider",
  "identifier" : "/documentation/FileProvider/NSFileProviderManager/globalProgress(for:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "File Provider"
    ],
    "preciseIdentifier" : "c:objc(cs)NSFileProviderManager(im)globalProgressForKind:"
  },
  "title" : "globalProgress(for:)"
}
-->

# globalProgress(for:)

Returns a progress object that tracks either the uploading or downloading of items from the File Provider extension’s remote storage.

```
func globalProgress(for kind: Progress.FileOperationKind) -> Progress
```

## Parameters

`kind`

The kind of operation. This method only accepts two values: <doc://com.apple.documentation/documentation/Foundation/Progress/FileOperationKind-swift.struct/uploading> and <doc://com.apple.documentation/documentation/Foundation/Progress/FileOperationKind-swift.struct/downloading>.

## Discussion

The returned progress instance tracks ongoing operations. This method supports two kinds of operations:

- <doc://com.apple.documentation/documentation/Foundation/Progress/FileOperationKind-swift.struct/uploading>: Uploading items from the local storage to the remote storage.
- <doc://com.apple.documentation/documentation/Foundation/Progress/FileOperationKind-swift.struct/downloading>: Downloading items from the remote storage to the local storage.

The progress instance has its <doc://com.apple.documentation/documentation/Foundation/Progress/fileOperationKind-swift.property> property set. It also provides the number of items to upload or download, the number of bytes already transferred, and the total number of bytes to transfer. The grand total is reset to `0` when there are no operations left.

If new matching operations begin while the progress instance is running, it adds the new operations to the existing data. By default, when there are no matching operations, the progress has its values set to `1` and its state set to finished.

The system updates the progress instance on the main queue. You must retain the progress item, and observe its changes through key-value observing. For more information, see `Using Key-Value Observing in Swift`.

---

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)