<!--
{
  "availability" : [
    "iOS: 12.0.0 -",
    "iPadOS: 12.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARAnchorCopying",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(pl)ARAnchorCopying"
  },
  "title" : "ARAnchorCopying"
}
-->

# ARAnchorCopying

Support for custom anchor subclasses.

```
protocol ARAnchorCopying : NSCopying
```

## Overview

An [`ARAnchor`](/documentation/ARKit/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`](/documentation/ARKit/ARFrame) object (describing the current environment as of a specific frame of live camera video), ARKit updates the [`anchors`](/documentation/ARKit/ARFrame/anchors) associated with the session as of that moment. Because anchor objects are immutable, ARKit must copy them to make changes from one [`ARFrame`](/documentation/ARKit/ARFrame) to the next.

If you create your own ARAnchor subclass, you must implement the [`init(anchor:)`](/documentation/ARKit/ARAnchorCopying/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

[`-  initWithAnchor:`](/documentation/ARKit/ARAnchorCopying/init(anchor:))

Initializes a new anchor by copying custom information from another anchor.

## Relationships

### Conforming Types

[`ARMeshAnchor`](/documentation/ARKit/ARMeshAnchor)

[`ARObjectAnchor`](/documentation/ARKit/ARObjectAnchor)

[`ARFaceAnchor`](/documentation/ARKit/ARFaceAnchor)

[`ARImageAnchor`](/documentation/ARKit/ARImageAnchor)

[`ARPlaneAnchor`](/documentation/ARKit/ARPlaneAnchor)

[`ARAppClipCodeAnchor`](/documentation/ARKit/ARAppClipCodeAnchor)

[`ARBodyAnchor`](/documentation/ARKit/ARBodyAnchor)

[`AREnvironmentProbeAnchor`](/documentation/ARKit/AREnvironmentProbeAnchor)

[`ARGeoAnchor`](/documentation/ARKit/ARGeoAnchor)

[`ARAnchor`](/documentation/ARKit/ARAnchor)

[`ARParticipantAnchor`](/documentation/ARKit/ARParticipantAnchor)

### Inherits From

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

---

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)