<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.10.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Swift",
  "identifier" : "/documentation/Swift/UnkeyedEncodingContainer/encodeConditional(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Swift"
    ],
    "preciseIdentifier" : "s:s24UnkeyedEncodingContainerP17encodeConditionalyyqd__KRld__CSERd__lF"
  },
  "title" : "encodeConditional(_:)"
}
-->

# encodeConditional(_:)

Encodes a reference to the given object only if it is encoded
unconditionally elsewhere in the payload (previously, or in the future).

```
mutating func encodeConditional<T>(_ object: T) throws where T : AnyObject, T : Encodable
```

## Parameters

`object`

The object to encode.

## Discussion

For encoders which don’t support this feature, the default implementation
encodes the given object unconditionally.

For formats which don’t support this feature, the default implementation
encodes the given object unconditionally.

> throws: `EncodingError.invalidValue` if the given value is invalid in
> the current context for this format.

---

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)