---
title: KeyedDecodingContainerProtocol
framework: swift
role: symbol
role_heading: Protocol
path: swift/keyeddecodingcontainerprotocol
---

# KeyedDecodingContainerProtocol

A type that provides a view into a decoder’s storage and is used to hold the encoded properties of a decodable type in a keyed manner.

## Declaration

```swift
protocol KeyedDecodingContainerProtocol
```

## Overview

Overview Decoders should provide types conforming to UnkeyedDecodingContainer for their format.

## Topics

### Associated Types

- [Key](swift/keyeddecodingcontainerprotocol/key.md)

### Instance Properties

- [allKeys](swift/keyeddecodingcontainerprotocol/allkeys.md)
- [codingPath](swift/keyeddecodingcontainerprotocol/codingpath.md)

### Instance Methods

- [contains(_:)](swift/keyeddecodingcontainerprotocol/contains(_:).md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-1pd5k.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-2sa7a.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-3cyg.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-3zluy.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-43hen.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-4d1ff.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-4k53i.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-5jtvg.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-5kzmf.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-62kn6.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-873gm.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-880hl.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-8h5vd.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-decq.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-kecy.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-p613.md)
- [decode(_:forKey:)](swift/keyeddecodingcontainerprotocol/decode(_:forkey:)-xuqk.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-17w89.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-1qynx.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-1saky.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-375xf.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-39kc6.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-3pes5.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-5bqjw.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-5k5md.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-5ymbd.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-6n52q.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-6vzzs.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-7a1da.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-7jjj2.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-7opy8.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-7p1j1.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-8qp1h.md)
- [decodeIfPresent(_:forKey:)](swift/keyeddecodingcontainerprotocol/decodeifpresent(_:forkey:)-lc54.md)
- [decodeNil(forKey:)](swift/keyeddecodingcontainerprotocol/decodenil(forkey:).md)
- [nestedContainer(keyedBy:forKey:)](swift/keyeddecodingcontainerprotocol/nestedcontainer(keyedby:forkey:).md)
- [nestedUnkeyedContainer(forKey:)](swift/keyeddecodingcontainerprotocol/nestedunkeyedcontainer(forkey:).md)
- [superDecoder()](swift/keyeddecodingcontainerprotocol/superdecoder().md)
- [superDecoder(forKey:)](swift/keyeddecodingcontainerprotocol/superdecoder(forkey:).md)

## Relationships

### Conforming Types

- [KeyedDecodingContainer](swift/keyeddecodingcontainer.md)

## See Also

### Decoding Containers

- [KeyedDecodingContainer](swift/keyeddecodingcontainer.md)
- [SingleValueDecodingContainer](swift/singlevaluedecodingcontainer.md)
- [UnkeyedDecodingContainer](swift/unkeyeddecodingcontainer.md)
