Skip to content

给的数据类型和枚举原始值不一样时会转失败 #6

@ifussa

Description

@ifussa

当数据给的类型, 和枚举的原始值类型不一样, 枚举会转失败

例子:

struct Person: Codable {
    @Default<Level> var level: Level
    
    enum Level: Int, Codable, DefaultValue {
        case one = 1
        case unknown = 0
        
        static func defaultValue() -> Level {
            .unknown
        }
    }
}

let json1: [String: Any] = [ "level": 1 ]
let p1 = Person.decodeJSON(from: json1) // p1.level 为 one ✅

let json2: [String: Any] = [ "level": "1" ]
let p2 = Person.decodeJSON(from: json2) // p2.level 为 unknown ❌

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions