<!--
{
  "availability" : [
    "iOS: 7.0.0 -",
    "iPadOS: 7.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.8.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ImageIO",
  "identifier" : "/documentation/ImageIO/kCGImageMetadataEnumerateRecursively",
  "metadataVersion" : "0.1.0",
  "role" : "Global Variable",
  "symbol" : {
    "kind" : "Global Variable",
    "modules" : [
      "Image I/O"
    ],
    "preciseIdentifier" : "c:@kCGImageMetadataEnumerateRecursively"
  },
  "title" : "kCGImageMetadataEnumerateRecursively"
}
-->

# kCGImageMetadataEnumerateRecursively

An option to enumerate recursively through a set of metadata tags.

```
let kCGImageMetadataEnumerateRecursively: CFString
```

## Discussion

The value of this key is a <doc://com.apple.documentation/documentation/CoreFoundation/CFBoolean>. Set the value to <doc://com.apple.documentation/documentation/DriverKit/kOSBooleanTrue> to enumerate all tags recursively. Set the value to <doc://com.apple.documentation/documentation/CoreFoundation/kCFBooleanFalse> to enumerate only the direct children of the root path you specify.

When you call [`CGImageMetadataEnumerateTagsUsingBlock(_:_:_:_:)`](/documentation/ImageIO/CGImageMetadataEnumerateTagsUsingBlock(_:_:_:_:)), include this option if you want the enumeration behavior to search recursively through the available tags. If you don’t specify this key, the function behaves as if the value is false.

---

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)