<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: -",
    "macOS: 13.0.0 -",
    "visionOS: -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PhotoKit",
  "identifier" : "/documentation/PhotosUI/PhotosPickerItem",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "PhotosUI",
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:015_PhotosUI_SwiftB00A10PickerItemV"
  },
  "title" : "PhotosPickerItem"
}
-->

# PhotosPickerItem

A type that represents an item you use with a Photos picker.

```
struct PhotosPickerItem
```

## Overview

The selection results you get from [`PhotosPicker`](/documentation/PhotosUI/PhotosPicker) are placeholder objects. A [`PhotosPickerItem`](/documentation/PhotosUI/PhotosPickerItem) conforms to <doc://com.apple.documentation/documentation/CoreTransferable/Transferable>, and allows you to load the representation you request. To load a SwiftUI <doc://com.apple.documentation/documentation/SwiftUI/Image> and track progress, use [`loadTransferable(type:completionHandler:)`](/documentation/PhotosUI/PhotosPickerItem/loadTransferable(type:completionHandler:)).

```swift
func loadTransferable(from imageSelection: PhotosPickerItem) -> Progress {
    return imageSelection.loadTransferable(type: Image.self) { result in
        DispatchQueue.main.async {
            guard imageSelection == self.imageSelection else { return }
            switch result {
            case .success(let image?):
                // Handle the success case with the image.
            case .success(nil):
                // Handle the success case with an empty value.
            case .failure(let error):
                // Handle the failure case with the provided error.
            }
        }
    }
}
```

A failure can occur when the system attempts to retrieve the data. For example, if the picker tries to download data from iCloud Photos without a network connection.

> Important:
> <doc://com.apple.documentation/documentation/SwiftUI/Image> only supports `PNG` file types through its <doc://com.apple.documentation/documentation/CoreTransferable/Transferable> conformance. For more information on creating a custom `Transferable` model to support other image types, see <doc://com.apple.photokit/documentation/PhotoKit/bringing-photos-picker-to-your-swiftui-app>.

## Topics

### Creating a picker item

[`init(itemIdentifier:)`](/documentation/PhotosUI/PhotosPickerItem/init(itemIdentifier:))

Creates a picker item with the identifier you specify, and without any representation.

### Inspecting a picker item

[`itemIdentifier`](/documentation/PhotosUI/PhotosPickerItem/itemIdentifier)

The local identifier of the item.

[`supportedContentTypes`](/documentation/PhotosUI/PhotosPickerItem/supportedContentTypes)

The content types the item supports in order of the most preferred to the least.

### Getting an encoding policy

[`PhotosPickerItem.EncodingDisambiguationPolicy`](/documentation/PhotosUI/PhotosPickerItem/EncodingDisambiguationPolicy)

A type that determines the encoding to use when multiple encodings are available, based on the content type.

### Loading the provider’s contents

[`loadTransferable(type:)`](/documentation/PhotosUI/PhotosPickerItem/loadTransferable(type:))

Attempts to load an instance of the type you specify from the item provider.

[`loadTransferable(type:completionHandler:)`](/documentation/PhotosUI/PhotosPickerItem/loadTransferable(type:completionHandler:))

Attempts to load an instance of the type you specify from the item provider, with a completion handler.



---

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)