<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARSession/delegate",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(cs)ARSession(py)delegate"
  },
  "title" : "delegate"
}
-->

# delegate

An object you provide to receive captured video images and tracking information, or to respond to changes in session status.

```
weak var delegate: (any ARSessionDelegate)? { get set }
```

## Discussion

If you use the [`ARSCNView`](/documentation/ARKit/ARSCNView) or [`ARSKView`](/documentation/ARKit/ARSKView) class to display your AR experience, a session delegate isn’t necessary. Those views automatically display captured video images and coordinate SceneKit or SpriteKit content to track device and camera motion.

If you create your own visualization for an AR experience using Metal or other rendering technologies, set a session delegate. Your delegate object periodically receives [`ARFrame`](/documentation/ARKit/ARFrame) objects captured by the session. These objects contain video frame images for you to display and AR scene information you can use to coordinate display of the scene elements you render.

---

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)