<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -",
    "watchOS: 7.3.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "NearbyInteraction",
  "identifier" : "/documentation/NearbyInteraction/NISessionDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Nearby Interaction"
    ],
    "preciseIdentifier" : "c:objc(pl)NISessionDelegate"
  },
  "title" : "NISessionDelegate"
}
-->

# NISessionDelegate

An object that monitors and reacts to session updates.

```
protocol NISessionDelegate : NSObjectProtocol
```

## Overview

Assign a delegate that Nearby Interaction can use to notify your app of important events that occur during the session life cycle.

## Topics

### Reacting to session start

[`sessionDidStartRunning(_:)`](/documentation/NearbyInteraction/NISessionDelegate/sessionDidStartRunning(_:))

Notifies the app when a session starts or resumes running.

### Monitoring peers

[`session(_:didUpdate:)`](/documentation/NearbyInteraction/NISessionDelegate/session(_:didUpdate:))

Notifies you when the session updates nearby objects.

[`session(_:didGenerateShareableConfigurationData:for:)`](/documentation/NearbyInteraction/NISessionDelegate/session(_:didGenerateShareableConfigurationData:for:))

Provides configuration data to share with a third-party accessory.

[`session(_:didRemove:reason:)`](/documentation/NearbyInteraction/NISessionDelegate/session(_:didRemove:reason:))

Notifies you when the session removes one or more nearby objects.

[`NINearbyObject.RemovalReason`](/documentation/NearbyInteraction/NINearbyObject/RemovalReason)

The reason a session removed a nearby object.

### Managing interruption

[`sessionWasSuspended(_:)`](/documentation/NearbyInteraction/NISessionDelegate/sessionWasSuspended(_:))

Notifies you of a suspended session.

[`sessionSuspensionEnded(_:)`](/documentation/NearbyInteraction/NISessionDelegate/sessionSuspensionEnded(_:))

Notifies you of the end of a session’s suspension.

### Handling errors

[`session(_:didInvalidateWith:)`](/documentation/NearbyInteraction/NISessionDelegate/session(_:didInvalidateWith:))

Notifies you of an invalidated session.

### Coaching the user

[`session(_:didUpdateAlgorithmConvergence:for:)`](/documentation/NearbyInteraction/NISessionDelegate/session(_:didUpdateAlgorithmConvergence:for:))

Provides recommended actions the user can take to facilitate the framework’s Camera Assistance.

[`NIAlgorithmConvergenceStatus`](/documentation/NearbyInteraction/NIAlgorithmConvergenceStatus-2fnve)

The possible states of Camera Assistance.

[`NIAlgorithmConvergenceStatus.Reason`](/documentation/NearbyInteraction/NIAlgorithmConvergenceStatus-2fnve/Reason)

The possible reasons for the Camera Assistance status.

### Monitoring DL-TDOA measurements

[`session(_:didUpdateDLTDOA:)`](/documentation/NearbyInteraction/NISessionDelegate/session(_:didUpdateDLTDOA:))

Provides device ranging estimates for a Downlink Time-Difference-of-Arrival session.



---

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)