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

# PHObjectChangeDetails

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

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

## Overview

A [`PHObjectChangeDetails`](/documentation/Photos/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`](/documentation/Photos/PHPhotoLibraryChangeObserver) protocol and registering your observer with the shared [`PHPhotoLibrary`](/documentation/Photos/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:`](/documentation/Photos/PHChange/changeDetailsForObject:) method.

For an asset collection or collection list, a [`PHObjectChangeDetails`](/documentation/Photos/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:)`](/documentation/Photos/PHChange/changeDetails(for:)-33a6n) method to track changes to the fetch result.

> Warning:
> Don’t map ``doc://com.apple.photokit/documentation/Photos/PHFetchResultChangeDetails/changedIndexes`` directly to <doc://com.apple.documentation/documentation/UIKit/UICollectionView> item indices in batch updates. Use these indices to reconfigure the corresponding cells after <doc://com.apple.documentation/documentation/UIKit/UICollectionView/performBatchUpdates(_:completion:)>. <doc://com.apple.documentation/documentation/UIKit/UICollectionView> and <doc://com.apple.documentation/documentation/UIKit/UITableView> expect the ``doc://com.apple.photokit/documentation/Photos/PHFetchResultChangeDetails/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`](/documentation/Photos/PHObjectChangeDetails/objectBeforeChanges)

An object that reflects the original state of the asset or collection it represents.

[`objectAfterChanges`](/documentation/Photos/PHObjectChangeDetails/objectAfterChanges)

An object that reflects the current state of the asset or collection it represents.

### Getting Change Information

[`assetContentChanged`](/documentation/Photos/PHObjectChangeDetails/assetContentChanged)

A Boolean value that indicates whether the asset’s photo or video content has changed.

[`objectWasDeleted`](/documentation/Photos/PHObjectChangeDetails/objectWasDeleted)

A Boolean value that indicates whether the object has been deleted from the Photos library.

## Relationships

### Conforms To

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

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

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

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

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

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

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

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

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)