---
title: ARAnchorCopying
framework: arkit
role: symbol
role_heading: Protocol
path: arkit/aranchorcopying
---

# ARAnchorCopying

Support for custom anchor subclasses.

## Declaration

```swift
protocol ARAnchorCopying : NSCopying
```

## Overview

Overview An ARAnchor (or an instance of any anchor subclass) represents a position and orientation in world space, and optionally associates extra information with that point (like a name, or plane or image detection data). Each time ARKit generates an ARFrame object (describing the current environment as of a specific frame of live camera video), ARKit updates the anchors associated with the session as of that moment. Because anchor objects are immutable, ARKit must copy them to make changes from one ARFrame to the next. If you create your own ARAnchor subclass, you must implement the init(anchor:) initializer required by this protocol. To ensure that any custom information in your subclass is maintained between successive frames, your implementation should copy any custom properties it declares.

## Topics

### Copying Anchors

- [init(anchor:)](arkit/aranchorcopying/init(anchor:).md)

## Relationships

### Inherits From

- [NSCopying](foundation/nscopying.md)

### Conforming Types

- [ARAnchor](arkit/aranchor.md)
- [ARAppClipCodeAnchor](arkit/arappclipcodeanchor.md)
- [ARBodyAnchor](arkit/arbodyanchor.md)
- [AREnvironmentProbeAnchor](arkit/arenvironmentprobeanchor.md)
- [ARFaceAnchor](arkit/arfaceanchor.md)
- [ARGeoAnchor](arkit/argeoanchor.md)
- [ARImageAnchor](arkit/arimageanchor.md)
- [ARMeshAnchor](arkit/armeshanchor.md)
- [ARObjectAnchor](arkit/arobjectanchor.md)
- [ARParticipantAnchor](arkit/arparticipantanchor.md)
- [ARPlaneAnchor](arkit/arplaneanchor.md)

## See Also

### Common Types

- [ARAnchor](arkit/aranchor.md)
- [ARTrackable](arkit/artrackable.md)
