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

# PHCollectionListChangeRequest

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

```
class PHCollectionListChangeRequest
```

## Overview

You use the [`PHCollectionListChangeRequest`](/documentation/Photos/PHCollectionListChangeRequest) class to request changes for [`PHCollectionList`](/documentation/Photos/PHCollectionList) objects. To make changes to collection lists (such as folders containing 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 [`creationRequestForCollectionList(withTitle:)`](/documentation/Photos/PHCollectionListChangeRequest/creationRequestForCollectionList(withTitle:)) method to create a new asset collection.
- Call the [`deleteCollectionLists(_:)`](/documentation/Photos/PHCollectionListChangeRequest/deleteCollectionLists(_:)) method to delete existing asset collections.
- Call the [`init(for:)`](/documentation/Photos/PHCollectionListChangeRequest/init(for:)) or [`init(for:childCollections:)`](/documentation/Photos/PHCollectionListChangeRequest/init(for:childCollections:)) method to modify a collection’s metadata or its list of child collections.

Before creating a change request, use the [`canPerform(_:)`](/documentation/Photos/PHCollection/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 a collection list works like a mutable version of the collection list object. Use the change request’s properties and instance methods to request changes to the collection list itself. For example, the following code removes an album from a folder.

```objc
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
        
    PHCollectionListChangeRequest *request =
        [PHCollectionListChangeRequest changeRequestForCollectionList:folder
                                                     childCollections:folderContentsFetchResult];
        
    [request removeChildCollections:@[ album ]];
     
} completionHandler:^(BOOL success, NSError *error) {
    NSLog(@"Finished removing the album from the folder. %@", (success ? @"Success" : error));
}];
```

After Photos runs the change block and calls your completion handler, the collection list’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`](/documentation/Photos/PHPhotoLibrary).

## Topics

### Creating a Change Request

[`init(for:)`](/documentation/Photos/PHCollectionListChangeRequest/init(for:))

Creates a request for modifying the specified collection list.

[`init(for:childCollections:)`](/documentation/Photos/PHCollectionListChangeRequest/init(for:childCollections:))

Creates a request for modifying the specified collection list, with a fetch result for tracking changes.

[`init(forTopLevelCollectionListUserCollections:)`](/documentation/Photos/PHCollectionListChangeRequest/init(forTopLevelCollectionListUserCollections:))

Creates a request to add, remove, or rearrange child collections in the top-level collection list.

### Managing Collection Lists

[`creationRequestForCollectionList(withTitle:)`](/documentation/Photos/PHCollectionListChangeRequest/creationRequestForCollectionList(withTitle:))

Creates a request for adding a new collection list to the Photos library.

[`placeholderForCreatedCollectionList`](/documentation/Photos/PHCollectionListChangeRequest/placeholderForCreatedCollectionList)

A placeholder object for the collection list that the change request creates.

[`deleteCollectionLists(_:)`](/documentation/Photos/PHCollectionListChangeRequest/deleteCollectionLists(_:))

Requests to delete the specified asset collections.

### Managing Collections

[`addChildCollections(_:)`](/documentation/Photos/PHCollectionListChangeRequest/addChildCollections(_:))

Adds the specified collections as children of the collection list.

[`insertChildCollections(_:at:)`](/documentation/Photos/PHCollectionListChangeRequest/insertChildCollections(_:at:))

Inserts the specified collections into the collection list at the specified indexes.

[`moveChildCollections(at:to:)`](/documentation/Photos/PHCollectionListChangeRequest/moveChildCollections(at:to:))

Moves the child collections at the specified indexes in the collection list to a new index.

[`replaceChildCollections(at:withChildCollections:)`](/documentation/Photos/PHCollectionListChangeRequest/replaceChildCollections(at:withChildCollections:))

Replaces the child collections at the specified indexes in the collection list with the specified collections.

[`removeChildCollections(_:)`](/documentation/Photos/PHCollectionListChangeRequest/removeChildCollections(_:))

Removes the specified child collections from the collection list.

[`removeChildCollections(at:)`](/documentation/Photos/PHCollectionListChangeRequest/removeChildCollections(at:))

Removes the child collections at the specified indexes from the collection list.

### Inspecting the Request

[`title`](/documentation/Photos/PHCollectionListChangeRequest/title)

The displayed name of the collection list.



---

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)