struct
KeyedDecodingContainer
<
K
>
Inheritance |
KeyedDecodingContainerProtocol
View Protocol Hierarchy →
|
---|---|
Associated Types |
|
Import |
|
Initializers
Creates a new instance with the given container.
container
: The container to hold.
Declaration
init
<
Container
>
(
_
container
:
Container
)
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
: [
K
] {
get
}
The path of coding keys taken to get to this point in decoding.
Declaration
var
codingPath
: [
CodingKey
] {
get
}
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.
key
: The key to search for.
returns: Whether the Decoder
has an entry for the given key.
Declaration
func
contains
(
_
key
:
KeyedDecodingContainer
<
K
>
.
Key
) -
>
Bool
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
Bool
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Bool
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
Double
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Double
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
Float
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Float
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
Int
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
Int8
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int8
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
Int16
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int16
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
Int32
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int32
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
Int64
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int64
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
String
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
String
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
UInt
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
UInt8
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt8
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
UInt16
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt16
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
UInt32
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt32
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
decode
(
_
type
:
UInt64
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt64
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
Bool
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Bool
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
Double
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Double
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
Float
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Float
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
Int
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
Int8
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int8
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
Int16
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int16
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
Int32
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int32
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
Int64
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Int64
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
String
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
String
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
UInt
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
UInt8
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt8
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
UInt16
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt16
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
UInt32
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt32
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
(
_
type
:
UInt64
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
UInt64
?
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
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.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func
decodeIfPresent
<
T
>
(
_
type
:
T
.
Type
,
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
T
?
where
T
:
Decodable
Declared In
KeyedDecodingContainer
, KeyedDecodingContainerProtocol
Decodes a null value for the given key.
key
: The key that the decoded value is associated with.
returns: Whether the encountered value was null.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
Declaration
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.
type
: The key type to use for the container.
key
: The key that the nested container is associated with.
returns: A keyed decoding container view into self
.
throws: DecodingError.typeMismatch
if the encountered stored value is
not a keyed container.
Declaration
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.
key
: The key that the nested container is associated with.
returns: An unkeyed decoding container view into self
.
throws: DecodingError.typeMismatch
if the encountered stored value is
not an unkeyed container.
Declaration
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)
.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the default super
key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the default super
key.
Declaration
func
superDecoder
()
throws
-
>
Decoder
Returns a Decoder
instance for decoding super
from the container
associated with the given key.
key
: The key to decode super
for.
returns: A new Decoder
to pass to super.init(from:)
.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func
superDecoder
(
forKey
key
:
KeyedDecodingContainer
<
K
>
.
Key
)
throws
-
>
Decoder
A concrete container that provides a view into a decoder's storage, making the encoded properties of a decodable type accessible by keys.