---
title: PHAssetChangeRequest
framework: photos
role: symbol
role_heading: Class
path: photos/phassetchangerequest
---

# PHAssetChangeRequest

A request to create, delete, change metadata for, or edit the content of a Photos asset, for use in a photo library change block.

## Declaration

```swift
class PHAssetChangeRequest
```

## Mentioned in

Requesting Changes to the Photo Library Editing Asset Content

## Overview

Overview You use the PHAssetChangeRequest class to request changes for PHAsset objects. To make changes to assets in the Photos library, create a change request by using the appropriate class method for the change you want to perform. Call one of the methods listed in Adding New Assets to create a new asset from an image or video file. Call the deleteAssets(_:) method to delete existing assets. Call the init(for:) method to modify an asset’s content or metadata. A change request for creating or modifying an asset works like a mutable version of the asset object. Use the change request’s properties to request changes to the corresponding properties of the asset itself. For example, the following code uses the isFavorite property of a change request to mark an asset as a favorite: After Photos runs the change block and calls your completion handler, the asset’s state reflects the changes that you requested in the block. If you create or use a change request object outside a photo library change block, Photos raises an Objective-C exception. For details on change blocks, see PHPhotoLibrary.

## Topics

### Adding New Assets

- [creationRequestForAsset(from:)](photos/phassetchangerequest/creationrequestforasset(from:).md)
- [creationRequestForAssetFromImage(atFileURL:)](photos/phassetchangerequest/creationrequestforassetfromimage(atfileurl:).md)
- [creationRequestForAssetFromVideo(atFileURL:)](photos/phassetchangerequest/creationrequestforassetfromvideo(atfileurl:).md)
- [placeholderForCreatedAsset](photos/phassetchangerequest/placeholderforcreatedasset.md)

### Deleting Assets

- [deleteAssets(_:)](photos/phassetchangerequest/deleteassets(_:).md)

### Modifying Assets

- [init(for:)](photos/phassetchangerequest/init(for:).md)
- [creationDate](photos/phassetchangerequest/creationdate.md)
- [location](photos/phassetchangerequest/location.md)
- [isFavorite](photos/phassetchangerequest/isfavorite.md)
- [isHidden](photos/phassetchangerequest/ishidden.md)

### Editing Asset Content

- [contentEditingOutput](photos/phassetchangerequest/contenteditingoutput.md)
- [revertAssetContentToOriginal()](photos/phassetchangerequest/revertassetcontenttooriginal().md)

### Initializers

- [init(forAsset:)](photos/phassetchangerequest/init(forasset:).md)

### Instance Properties

- [rating](photos/phassetchangerequest/rating.md)

### Instance Methods

- [revertAssetContent(to:)](photos/phassetchangerequest/revertassetcontent(to:).md)
- [setLivePhotoVideoPlaybackEnabled(_:)](photos/phassetchangerequest/setlivephotovideoplaybackenabled(_:).md)

## Relationships

### Inherits From

- [PHChangeRequest](photos/phchangerequest.md)

### Inherited By

- [PHAssetCreationRequest](photos/phassetcreationrequest.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Updating the Library

- [Requesting Changes to the Photo Library](photokit/requesting-changes-to-the-photo-library.md)
- [performChanges(_:completionHandler:)](photos/phphotolibrary/performchanges(_:completionhandler:).md)
- [performChangesAndWait(_:)](photos/phphotolibrary/performchangesandwait(_:).md)
- [PHChangeRequest](photos/phchangerequest.md)
- [PHAssetCollectionChangeRequest](photos/phassetcollectionchangerequest.md)
- [PHCollectionListChangeRequest](photos/phcollectionlistchangerequest.md)
- [PHObjectPlaceholder](photos/phobjectplaceholder.md)
