<!--
{
  "availability" : [
    "iOS: 3.1.0 -",
    "iPadOS: 3.1.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "QuartzCore",
  "identifier" : "/documentation/QuartzCore/CADisplayLink/duration",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Core Animation"
    ],
    "preciseIdentifier" : "c:objc(cs)CADisplayLink(py)duration"
  },
  "title" : "duration"
}
-->

# duration

The time interval between screen refresh updates.

```
var duration: CFTimeInterval { get }
```

## Discussion

This value is in an undefined state until the system calls the target’s selector at least once.

You calculate the expected amount of time your app has to render each frame by using [`targetTimestamp`](/documentation/QuartzCore/CADisplayLink/targetTimestamp)-[`timestamp`](/documentation/QuartzCore/CADisplayLink/timestamp). Use [`targetTimestamp`](/documentation/QuartzCore/CADisplayLink/targetTimestamp)-[`CACurrentMediaTime()`](/documentation/QuartzCore/CACurrentMediaTime()) to calculate the actual amount of time.

---

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)