1
JSONEncoder
方法func encode<T>(_ value: T) throws -> Data where T : Encodable
是可丢失的。使用Swift进行编码时可能发生什么错误JSONEncoder
我想知道为什么它是可抛出的:如果编码值不符合Encodable
,它不应该通过编译器,所以它不应该在运行时发生错误。
JSONEncoder
方法func encode<T>(_ value: T) throws -> Data where T : Encodable
是可丢失的。使用Swift进行编码时可能发生什么错误JSONEncoder
我想知道为什么它是可抛出的:如果编码值不符合Encodable
,它不应该通过编译器,所以它不应该在运行时发生错误。
从JSONEncoder
的source code:
/// - throws: `EncodingError.invalidValue` if a non-conforming floating-point value is encountered during encoding, and the encoding strategy is `.throw`.
/// - throws: An error if any value throws an error during encoding.
调试描述的所有错误:
顶层(T.self)没有编码任何值。
顶层(T.self)编码为空JSON片段。
顶层(T.self)编码为数字JSON片段。
顶级(T.self)编码为字符串JSON片段。
谢谢您的回答! – Jonny