<!--
{
  "availability" : [
    "iOS: 8.0.0 - 13.0.0",
    "iPadOS: 8.0.0 - 13.0.0",
    "macCatalyst: 13.1.0 -",
    "macOS: -",
    "tvOS: 10.0.0 - 13.0.0",
    "visionOS: 1.0.0 - 1.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "PhotoKit",
  "identifier" : "/documentation/Photos/PHImageManager/requestImageDataForAsset:options:resultHandler:",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Photos"
    ],
    "preciseIdentifier" : "c:objc(cs)PHImageManager(im)requestImageDataForAsset:options:resultHandler:"
  },
  "title" : "requestImageDataForAsset:options:resultHandler:"
}
-->

# requestImageDataForAsset:options:resultHandler:

Requests full-sized image data for the specified asset.

```
- (PHImageRequestID) requestImageDataForAsset:(PHAsset *) asset options:(PHImageRequestOptions *) options resultHandler:(void (^)(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info)) resultHandler;
```

## Parameters

`asset`

The asset for which to load image data.

`options`

Options specifying how Photos should handle the request, format the requested image, and notify your app of progress or errors. For details, see [`PHImageRequestOptions`](/documentation/Photos/PHImageRequestOptions).

`resultHandler`

A block to be called when image loading is complete, providing the requested image or information about the status of the request.

    The block takes the following parameters:

- imageData: The requested image.
- dataUTI: The requested image.
- orientation: The intended display orientation for the image.
- info: A dictionary providing information about the status of the request. See <doc://com.apple.photokit/documentation/PhotoKit/image-result-info-keys> for possible keys and values.

## Return Value

A numeric identifier for the request. If you need to cancel the request before it completes, pass this identifier to the [`cancelImageRequest(_:)`](/documentation/Photos/PHImageManager/cancelImageRequest(_:)) method.

## Discussion

When you call this method, Photos loads the largest available representation of the image asset, then calls your `resultHandler` block to provide the requested data. Depending on the options you specify and the current state of the asset, Photos may download asset data from the network.

By default, this method executes asynchronously. If you call it from a background thread you may change the [`isSynchronous`](/documentation/Photos/PHImageRequestOptions/isSynchronous) property of the `options` parameter to `true` to block the calling thread until either the requested image is ready or an error occurs, at which time Photos calls your result handler. This method ignores the [`deliveryMode`](/documentation/Photos/PHImageRequestOptions/deliveryMode) option—Photos calls your result handler block exactly once.

If the [`version`](/documentation/Photos/PHImageRequestOptions/version) option is set to [`PHImageRequestOptionsVersion.current`](/documentation/Photos/PHImageRequestOptionsVersion/current), Photos provides rendered image data, including the results of any edits that have been made to the asset content. Otherwise, Photos provides the originally captured image data for the asset.

---

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)