<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.13.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PhotoKit",
  "identifier" : "/documentation/Photos/PHAsset",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Photos"
    ],
    "preciseIdentifier" : "c:objc(cs)PHAsset"
  },
  "title" : "PHAsset"
}
-->

# PHAsset

A representation of an image, video, or Live Photo in the Photos library.

```
class PHAsset
```

## Overview

You fetch assets to begin working with them. Use the class methods listed in Fetching Assets to retrieve one or more [`PHAsset`](/documentation/Photos/PHAsset) instances representing the assets you want to display or edit.

Assets contain only metadata. The underlying image or video data for any given asset might not be stored on the local device. However, depending on how you plan to use this data, you may not need to download all of it. If you need to populate a collection view with thumbnail images, the Photos framework can manage downloading, generating, and caching thumbnails for each asset. For details, see [`PHImageManager`](/documentation/Photos/PHImageManager).

Asset objects are immutable. To edit an asset’s metadata (such as marking it as a favorite photo), create a [`PHAssetChangeRequest`](/documentation/Photos/PHAssetChangeRequest) object within a photo library change block. For more details on using change requests and change blocks to update the photo library, see [`PHPhotoLibrary`](/documentation/Photos/PHPhotoLibrary).

## Topics

### Fetching Assets

  <doc://com.apple.photokit/documentation/PhotoKit/fetching-assets>

[`fetchAssets(in:options:)`](/documentation/Photos/PHAsset/fetchAssets(in:options:))

Retrieves assets from the specified asset collection.

[`fetchAssets(with:options:)`](/documentation/Photos/PHAsset/fetchAssets(with:options:))

Retrieves assets with the specified media type.

[`fetchAssets(withLocalIdentifiers:options:)`](/documentation/Photos/PHAsset/fetchAssets(withLocalIdentifiers:options:))

Retrieves assets with the specified local-device-specific unique identifiers.

[`fetchKeyAssets(in:options:)`](/documentation/Photos/PHAsset/fetchKeyAssets(in:options:))

Retrieves assets marked as key assets in the specified asset collection.

[`fetchAssets(with:)`](/documentation/Photos/PHAsset/fetchAssets(with:))

Retrieves all assets matching the specified options.

[`fetchAssets(withBurstIdentifier:options:)`](/documentation/Photos/PHAsset/fetchAssets(withBurstIdentifier:options:))

Retrieves assets with the specified burst photo sequence identifier.

[`fetchAssets(withALAssetURLs:options:)`](/documentation/Photos/PHAsset/fetchAssets(withALAssetURLs:options:))

Retrieves assets using URLs provided by the Assets Library framework.

### Reading Asset Metadata

[`contentType`](/documentation/Photos/PHAsset/contentType)

The type of image or video data that is presented for the asset

[`mediaType`](/documentation/Photos/PHAsset/mediaType)

The type of the asset, such as video or audio.

[`PHAssetMediaType`](/documentation/Photos/PHAssetMediaType)

Identifies the general type of an asset, such as image or video.

[`mediaSubtypes`](/documentation/Photos/PHAsset/mediaSubtypes)

The subtypes of the asset, identifying special kinds of assets, such as panoramic photo or high-frame-rate video.

[`PHAssetMediaSubtype`](/documentation/Photos/PHAssetMediaSubtype)

Constants identifying specific variations of asset media, such as panorama or screenshot photos, and time-lapse or high-frame-rate video.

[`sourceType`](/documentation/Photos/PHAsset/sourceType)

The means by which the asset enters the user’s Photos library.

[`PHAssetSourceType`](/documentation/Photos/PHAssetSourceType)

The means by which an asset enters the Photos library.

[`pixelWidth`](/documentation/Photos/PHAsset/pixelWidth)

The width, in pixels, of the asset’s image or video data.

[`pixelHeight`](/documentation/Photos/PHAsset/pixelHeight)

The height, in pixels, of the asset’s image or video data.

[`addedDate`](/documentation/Photos/PHAsset/addedDate)

The date and time this asset was added to the photo library (from the device that was used to add this asset)

[`creationDate`](/documentation/Photos/PHAsset/creationDate)

The date and time of the asset’s creation.

[`modificationDate`](/documentation/Photos/PHAsset/modificationDate)

The date and time of the asset’s last modification.

[`location`](/documentation/Photos/PHAsset/location)

The location information for the asset.

[`duration`](/documentation/Photos/PHAsset/duration)

The duration, in seconds, of the video asset.

[`isFavorite`](/documentation/Photos/PHAsset/isFavorite)

A Boolean value that indicates whether the user marks the asset as a favorite.

[`isHidden`](/documentation/Photos/PHAsset/isHidden)

A Boolean value that indicates whether the user hides the asset.

[`hasAdjustments`](/documentation/Photos/PHAsset/hasAdjustments)

A Boolean value that indicates whether the asset contains adjustment data.

[`adjustmentFormatIdentifier`](/documentation/Photos/PHAsset/adjustmentFormatIdentifier)

The identifier that describes the adjustment format.

[`isSyncFailureHidden`](/documentation/Photos/PHAsset/isSyncFailureHidden)

A Boolean value that indicates whether the user hides the sync failure message.

[`extendedMetadata`](/documentation/Photos/PHAsset/extendedMetadata)

An accessor to other asset properties.

[`PHAssetExtendedMetadata`](/documentation/Photos/PHAssetExtendedMetadata)

Represents other asset attributes that are not included when fetching `PHAsset` directly.

[`rating`](/documentation/Photos/PHAsset/rating-swift.property)

The rating of this PHAsset.

[`PHAsset.Rating`](/documentation/Photos/PHAsset/Rating-swift.enum)

A rating for an asset, from unset (no rating chosen) up to five stars.

### Displaying an Asset

[`playbackStyle`](/documentation/Photos/PHAsset/playbackStyle-swift.property)

An enumerated value that describes how to present an asset to the user.

[`PHAsset.PlaybackStyle`](/documentation/Photos/PHAsset/PlaybackStyle-swift.enum)

An enumeration of asset playback styles that dictate how to present an asset to the user.

### Editing an Asset

  <doc://com.apple.photokit/documentation/PhotoKit/editing-asset-content>

[`PHContentEditingInput`](/documentation/Photos/PHContentEditingInput)

A container that provides information about and access to the image, video, or Live Photo content of an asset to be edited.

[`PHContentEditingOutput`](/documentation/Photos/PHContentEditingOutput)

A container to which you provide the results of editing the photo, video, or Live Photo content of a Photos asset.

[`PHAdjustmentData`](/documentation/Photos/PHAdjustmentData)

A description of the edits made to an asset’s photo, video, or Live Photo content, which allows your app to reconstruct or revert the effects of prior editing sessions.

[`PHContentEditingInputRequestOptions`](/documentation/Photos/PHContentEditingInputRequestOptions)

A set of options affecting the delivery of image or video data when you request to edit the content of a Photos asset.

[`PHLivePhotoEditingContext`](/documentation/Photos/PHLivePhotoEditingContext)

An editing session for modifying the photo, video, and audio content of a Live Photo.

[`PHLivePhotoFrame`](/documentation/Photos/PHLivePhotoFrame)

A container that provides image content for a single frame of a Live Photo in an editing context.

[`canPerform(_:)`](/documentation/Photos/PHAsset/canPerform(_:))

Returns whether the asset supports the specified editing operation.

[`PHAssetEditOperation`](/documentation/Photos/PHAssetEditOperation)

Values identifying possible actions an asset can support, used by the [`canPerform(_:)`](/documentation/Photos/PHAsset/canPerform(_:)) method.

[`requestContentEditingInput(with:completionHandler:)`](/documentation/Photos/PHAsset/requestContentEditingInput(with:completionHandler:))

Requests asset information for beginning a content editing session.

[`cancelContentEditingInputRequest(_:)`](/documentation/Photos/PHAsset/cancelContentEditingInputRequest(_:))

Cancels a request for editing the asset’s content.

[`PHContentEditingInputRequestID`](/documentation/Photos/PHContentEditingInputRequestID)

An identifier for an asset content editing session.

[`PHAsset.OriginalResourceChoice`](/documentation/Photos/PHAsset/OriginalResourceChoice-swift.enum)

A choice of which original resource to use as the unadjusted base when reverting an asset’s content.

  <doc://com.apple.photokit/documentation/PhotoKit/editing-request-info-keys>

### Working with Burst Photo Assets

[`burstIdentifier`](/documentation/Photos/PHAsset/burstIdentifier)

The unique identifier shared by photo assets from the same burst sequence.

[`burstSelectionTypes`](/documentation/Photos/PHAsset/burstSelectionTypes)

The selection type of the asset in a burst photo sequence.

[`PHAssetBurstSelectionType`](/documentation/Photos/PHAssetBurstSelectionType)

Bit mask values indicating whether and how an asset is marked as a favorite member of a burst photo sequence. Used by the [`burstSelectionTypes`](/documentation/Photos/PHAsset/burstSelectionTypes) property.

[`representsBurst`](/documentation/Photos/PHAsset/representsBurst)

A Boolean value that indicates whether the asset is the representative photo from a burst photo sequence.



---

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)