struct
KeyedDecodingContainer
A concrete container that provides a view into a decoder's storage, making the encoded properties of a decodable type accessible by keys.
Inheritance | KeyedDecodingContainerProtocol |
---|---|
Associated Types |
|
Initializers
Instance Variables
All the keys the decoder has for this container.
Different keyed containers from the same decoder may return different keys here, because it is possible to encode with multiple key types which are not convertible to one another. This should report all keys present which are convertible to the requested type.
Declaration
var
allKeys
: [
KeyedDecodingContainer
<
K
>
.
Key
]
The path of coding keys taken to get to this point in decoding.
Declaration
var
codingPath
: [
CodingKey
]
Instance Methods
Returns a Boolean value indicating whether the decoder contains a value associated with the given key.
The value associated with the given key may be a null value as appropriate for the data format.
- parameter key: The key to search for.
Declaration
public
func
contains
(
_
key
:
KeyedDecodingContainer
<
K
>
.
Key
) -
>
Bool
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
Bool
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Bool
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
String
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
String
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
Double
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Double
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
Float
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Float
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
Int
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
Int8
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int8
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
Int16
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int16
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
Int32
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int32
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
Int64
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int64
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
UInt
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
UInt8
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt8
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
UInt16
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt16
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
UInt32
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt32
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
(
_
type
:
UInt64
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt64
Decodes a value of the given type for the given key.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decode
<
T
>
(
_
type
:
T
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
T
where
T
:
Decodable
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
Bool
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Bool
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
String
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
String
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
Double
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Double
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
Float
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Float
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
Int
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
Int8
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int8
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
Int16
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int16
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
Int32
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int32
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
Int64
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int64
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt8
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt8
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt16
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt16
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt32
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt32
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt64
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt64
?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
- parameter type: The type of value to decode.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeIfPresent
<
T
>
(
_
type
:
T
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
T
?
where
T
:
Decodable
Declaration
public
func
decodeIfPresent
(
_
type
:
Bool
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
Bool
?
Declaration
public
func
decodeIfPresent
(
_
type
:
String
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
String
?
Declaration
public
func
decodeIfPresent
(
_
type
:
Double
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
Double
?
Declaration
public
func
decodeIfPresent
(
_
type
:
Float
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
Float
?
Declaration
public
func
decodeIfPresent
(
_
type
:
Int
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
Int
?
Declaration
public
func
decodeIfPresent
(
_
type
:
Int8
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
Int8
?
Declaration
public
func
decodeIfPresent
(
_
type
:
Int16
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
Int16
?
Declaration
public
func
decodeIfPresent
(
_
type
:
Int32
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
Int32
?
Declaration
public
func
decodeIfPresent
(
_
type
:
Int64
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
Int64
?
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
UInt
?
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt8
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
UInt8
?
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt16
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
UInt16
?
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt32
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
UInt32
?
Declaration
public
func
decodeIfPresent
(
_
type
:
UInt64
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
UInt64
?
Declaration
public
func
decodeIfPresent
<
T
>
(
_
type
:
T
.
Type
,
forKey
key
:
Self
.
Key
)
throws
-
>
T
?
where
T
:
Decodable
Decodes a null value for the given key.
- parameter key: The key that the decoded value is associated with.
Declaration
public
func
decodeNil
(
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Bool
Returns the data stored for the given key as represented in a container keyed by the given key type.
- parameter type: The key type to use for the container.
- parameter key: The key that the nested container is associated with.
Declaration
public
func
nestedContainer
<
NestedKey
>
(
keyedBy
type
:
NestedKey
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
KeyedDecodingContainer
<
NestedKey
>
where
NestedKey
:
CodingKey
Returns the data stored for the given key as represented in an unkeyed container.
- parameter key: The key that the nested container is associated with.
Declaration
public
func
nestedUnkeyedContainer
(
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UnkeyedDecodingContainer
Returns a Decoder
instance for decoding super
from the container
associated with the default super
key.
Equivalent to calling superDecoder(forKey:)
with
Key(stringValue: "super", intValue: 0)
.
Declaration
public
func
superDecoder
()
throws
-
>
Decoder
Returns a Decoder
instance for decoding super
from the container
associated with the given key.
- parameter key: The key to decode
super
for.
Declaration
public
func
superDecoder
(
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Decoder
Creates a new instance with the given container.
Declaration
public
init
<
Container
>
(
_
container
:
Container
)
where
K
==
Container
.
Key
,
Container
:
KeyedDecodingContainerProtocol