---
title: PHObjectPlaceholder
framework: photos
role: symbol
role_heading: Class
path: photos/phobjectplaceholder
---

# PHObjectPlaceholder

A read-only proxy object that represents a Photos asset or collection to create.

## Declaration

```swift
class PHObjectPlaceholder
```

## Mentioned in

Requesting Changes to the Photo Library

## Overview

Overview You obtain object placeholders when you use change requests to create assets, collections, or collection lists. After the change request completes, you can use the object placeholder to fetch the newly created object. You can also use an object placeholder to make additional change requests involving the object to create. For example, the following code uses a placeholder to add a newly created asset to an album. A placeholder always has the same local identifier as the asset, collection, or collection list that it represents. To find the object that corresponds to a placeholder, read the placeholder’s localIdentifier property and use it to fetch the actual object. Alternatively, because the PHObjectPlaceholder class implements the == and hash methods in terms of its localIdentifier property, you can also find the object for a placeholder using techniques that depend on these methods.

## Relationships

### Inherits From

- [PHObject](photos/phobject.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.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)
- [PHAssetCollectionChangeRequest](photos/phassetcollectionchangerequest.md)
- [PHCollectionListChangeRequest](photos/phcollectionlistchangerequest.md)
