<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "tvOS: -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AudioToolbox",
  "identifier" : "/documentation/AudioToolbox/AudioUnitParameterInfo/flags",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Audio Toolbox"
    ],
    "preciseIdentifier" : "c:@S@AudioUnitParameterInfo@FI@flags"
  },
  "title" : "flags"
}
-->

# flags

The host should check for this flag and, if present, release the parameter name when it is finished with it.

```
var flags: AudioUnitParameterOptions
```

## Discussion

Due to some vagaries about the ways in which Parameter’s CFNames have been described, it was necessary to add a flag: [`flag_CFNameRelease`](/documentation/AudioToolbox/AudioUnitParameterOptions/flag_CFNameRelease). In normal usage a parameter name is essentially a static object, but sometimes an audio unit will generate parameter names dynamically. As these are expected to be <doc://com.apple.documentation/documentation/CoreFoundation/CFString> objects, in that case the host should release those names when it is finished with them, but there was no way to communicate this distinction in behavior. Thus, if an audio unit can generate a name dynamically, it should set this flag in the parameter’s info. The host should check for this flag and, if present, release the parameter name when it is finished with it.

---

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)