---
title: PHAssetCollectionChangeRequest
framework: photos
role: symbol
role_heading: Class
path: photos/phassetcollectionchangerequest
---

# PHAssetCollectionChangeRequest

A request to create, delete, or modify a Photos asset collection, for use in a photo library change block.

## Declaration

```swift
class PHAssetCollectionChangeRequest
```

## Mentioned in

Requesting Changes to the Photo Library

## Overview

Overview You use the PHAssetCollectionChangeRequest class to request changes for PHAssetCollection objects. To make changes to asset collections (such as user-created albums) in the Photos library, create a change request using the appropriate class method for the change you want to perform. Call the creationRequestForAssetCollection(withTitle:) method to create a new asset collection. Call the deleteAssetCollections(_:) method to delete existing asset collections. Call the init(for:) or init(for:assets:) method to modify a collection’s metadata or list of member assets. Before creating a change request, use the canPerform(_:) method to verify that the collection allows the edit operation you’re requesting. If you attempt to perform an unsupported edit operation, Photos throws an exception. A change request for creating or modifying an asset collection works like a mutable version of the asset collection object. Use the change request’s properties and instance methods to request changes to the asset collection itself. For example, the following code removes an asset from an album. After Photos runs the change block and calls your completion handler, the asset collection’s state reflects the changes 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 Asset Collections

- [creationRequestForAssetCollection(withTitle:)](photos/phassetcollectionchangerequest/creationrequestforassetcollection(withtitle:).md)
- [placeholderForCreatedAssetCollection](photos/phassetcollectionchangerequest/placeholderforcreatedassetcollection.md)

### Deleting Asset Collections

- [deleteAssetCollections(_:)](photos/phassetcollectionchangerequest/deleteassetcollections(_:).md)

### Modifying Asset Collections

- [init(for:)](photos/phassetcollectionchangerequest/init(for:).md)
- [init(for:assets:)](photos/phassetcollectionchangerequest/init(for:assets:).md)
- [title](photos/phassetcollectionchangerequest/title.md)
- [addAssets(_:)](photos/phassetcollectionchangerequest/addassets(_:).md)
- [insertAssets(_:at:)](photos/phassetcollectionchangerequest/insertassets(_:at:).md)
- [removeAssets(_:)](photos/phassetcollectionchangerequest/removeassets(_:).md)
- [removeAssets(at:)](photos/phassetcollectionchangerequest/removeassets(at:).md)
- [replaceAssets(at:withAssets:)](photos/phassetcollectionchangerequest/replaceassets(at:withassets:).md)
- [moveAssets(at:to:)](photos/phassetcollectionchangerequest/moveassets(at:to:).md)

### Initializers

- [init(forAssetCollection:)](photos/phassetcollectionchangerequest/init(forassetcollection:).md)
- [init(forAssetCollection:assets:)](photos/phassetcollectionchangerequest/init(forassetcollection:assets:).md)

## Relationships

### Inherits From

- [PHChangeRequest](photos/phchangerequest.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)
- [PHAssetChangeRequest](photos/phassetchangerequest.md)
- [PHCollectionListChangeRequest](photos/phcollectionlistchangerequest.md)
- [PHObjectPlaceholder](photos/phobjectplaceholder.md)
