Contents

apply(_:animatingDifferences:completion:)

Updates the UI to reflect the state of the data in the snapshot, optionally animating the UI changes and executing a completion handler.

Declaration

@MainActor @preconcurrency func apply(_ snapshot: NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>, animatingDifferences: Bool = true, completion: (() -> Void)? = nil)

Parameters

  • snapshot:

    The snapshot that reflects the new state of the data in the collection view.

  • animatingDifferences:

    If True, the system animates the updates to the collection view. If False, the system doesn’t animate the updates to the collection view.

  • completion:

    A closure to execute when the animations are complete. This closure has no return value and takes no parameters. The system calls this closure from the main queue.

Discussion

The diffable data source computes the difference between the collection view’s current state and the new state in the applied snapshot, which is an O(n) operation, where n is the number of items in the snapshot.

You can safely call this method from a background queue, but you must do so consistently in your app. Always call this method exclusively from the main queue or from a background queue.

See Also

Updating data