<!--
{
  "availability" : [
    "macOS: 10.13.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PhotoKit",
  "identifier" : "/documentation/Photos/PHProjectChangeRequest",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Photos"
    ],
    "preciseIdentifier" : "c:objc(cs)PHProjectChangeRequest"
  },
  "title" : "PHProjectChangeRequest"
}
-->

# PHProjectChangeRequest

A request to change asset data in a Photos project extension.

```
class PHProjectChangeRequest
```

## Overview

Make a project change request to alter a project’s title or metadata. Respond to project change requests by updating your user interface as assets are added, modified, or removed.

## Topics

### Creating Change Requests

[`init(project: PHProject)`](/documentation/Photos/PHProjectChangeRequest/init(project:))

Creates a change request around the specified project.

[`var title: String`](/documentation/Photos/PHProjectChangeRequest/title)

The title of the change request.

[`var projectExtensionData: Data`](/documentation/Photos/PHProjectChangeRequest/projectExtensionData)

Compressed project-specific data to use in the change request.

### Responding to Change Requests

[`func setProjectPreviewImage(NSImage)`](/documentation/Photos/PHProjectChangeRequest/setProjectPreviewImage(_:))

Updates the project preview in Photos.

[`func setKeyAsset(PHAsset?)`](/documentation/Photos/PHProjectChangeRequest/setKeyAsset(_:))

Sets the key asset representing the project.

### Removing Assets

[`func removeAssets<T>(T)`](/documentation/Photos/PHProjectChangeRequest/removeAssets(_:)-n825)

Removes assets of a certain type from the collection.

[`func removeAssets(PHFetchResult<PHAsset>)`](/documentation/Photos/PHProjectChangeRequest/removeAssets(_:)-3ytt3)

Removes assets based on a fetch result.

[`- (void) removeAssets:(id<NSFastEnumeration>) assets;`](/documentation/Photos/PHProjectChangeRequest/removeAssets:)

Removes the specified assets from the project.

## Relationships

### Conforms To

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`Hashable`](/documentation/Swift/Hashable)

[`CVarArg`](/documentation/Swift/CVarArg)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

### Inherits From

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

---

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)