---
title: PHObjectChangeDetails
framework: photos
role: symbol
role_heading: Class
path: photos/phobjectchangedetails
---

# PHObjectChangeDetails

A description of changes that occurred in an asset or collection object.

## Declaration

```swift
class PHObjectChangeDetails<ObjectType> where ObjectType : PHObject
```

## Overview

Overview A PHObjectChangeDetails object provides detailed information about differences between two states of an asset or collection object—one that you previously obtained and an updated state that would result if you fetched that entity again. You observe changes by adopting the PHPhotoLibraryChangeObserver protocol and registering your observer with the shared PHPhotoLibrary object. When Photos notifies your observer of a change, you get change details by passing the object you’re interested in to the changeDetailsForObject: method. For an asset collection or collection list, a PHObjectChangeDetails object describe changes only to the collection’s properties. If you’re instead interested in changes to the collection’s membership, fetch the collection’s contents and use the changeDetails(for:) method to track changes to the fetch result. warning: Don’t map changedIndexes directly to UICollectionView item indices in batch updates. Use these indices to reconfigure the corresponding cells after performBatchUpdates(_:completion:). UICollectionView and UITableView expect the changedIndexes to be in the before state, while PhotoKit provides them in the after state, resulting in a crash if your app performs insertions and deletions at the same time as the changes.

## Topics

### Getting the Changed Object

- [objectBeforeChanges](photos/phobjectchangedetails/objectbeforechanges.md)
- [objectAfterChanges](photos/phobjectchangedetails/objectafterchanges.md)

### Getting Change Information

- [assetContentChanged](photos/phobjectchangedetails/assetcontentchanged.md)
- [objectWasDeleted](photos/phobjectchangedetails/objectwasdeleted.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.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)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Observing Library Changes

- [Observing Changes in the Photo Library](photokit/observing-changes-in-the-photo-library.md)
- [register(_:)](photos/phphotolibrary/register(_:)-6y3b9.md)
- [unregisterChangeObserver(_:)](photos/phphotolibrary/unregisterchangeobserver(_:).md)
- [PHPhotoLibraryChangeObserver](photos/phphotolibrarychangeobserver.md)
- [PHChange](photos/phchange.md)
- [PHFetchResultChangeDetails](photos/phfetchresultchangedetails.md)
