<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: 16.0.0 -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "NearbyInteraction",
  "identifier" : "/documentation/NearbyInteraction/NIAlgorithmConvergence",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Nearby Interaction"
    ],
    "preciseIdentifier" : "c:objc(cs)NIAlgorithmConvergence"
  },
  "title" : "NIAlgorithmConvergence"
}
-->

# NIAlgorithmConvergence

An object that provides the state and reason for user coaching recommendations.

```
class NIAlgorithmConvergence
```

## Overview

This class conveys the current state of the framework’s Camera Assistance feature when you turn on [`isCameraAssistanceEnabled`](/documentation/NearbyInteraction/NINearbyPeerConfiguration/isCameraAssistanceEnabled). When the status indicates that user action is required to achieve the highest-quality results, instances of this class identify specific actions the user can do to help. To improve the status, the app needs to coach the user such as by presenting instructional text. The information you provide tells the user, for example, where and at what speed to pan the device around the environment.

To listen for the convergence status, implement [`session(_:didUpdateAlgorithmConvergence:for:)`](/documentation/NearbyInteraction/NISessionDelegate/session(_:didUpdateAlgorithmConvergence:for:)).

## Topics

### Determining convergence state

[`var status: NIAlgorithmConvergenceStatus`](/documentation/NearbyInteraction/NIAlgorithmConvergence/status-654t)

The current state of the framework’s Camera Assistance feature.

[`@property (nonatomic, readonly) NIAlgorithmConvergenceStatus status;`](/documentation/NearbyInteraction/NIAlgorithmConvergence/status-j61c)

The current state of the framework’s Camera Assistance feature.

### Coaching the user based on convergence state

[`@property (nonatomic, readonly) NSArray<NSString *> * reasons;`](/documentation/NearbyInteraction/NIAlgorithmConvergence/reasons)

An array of reasons that contribute to the convergence status.

### Initializers

[`init?(coder: NSCoder)`](/documentation/NearbyInteraction/NIAlgorithmConvergence/init(coder:))

## Relationships

### Inherits From

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

### Conforms To

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

[`NSCoding`](/documentation/Foundation/NSCoding)

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

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

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

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

[`NSCopying`](/documentation/Foundation/NSCopying)

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

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

---

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)