Skip to content

服务器返回的数据类型不确定时,怎么使用? #73

@w292592363

Description

@w292592363

数据中有个字段类型不确定,可能是Int也可能是String,我定义了一个枚举类型来接收。
enum PropertyValue: ConvertibleEnum {
case intType(Int)
case strType(String)

static var kj_valueType: Any.Type {
    return PropertyValue.self
}

var kj_value: Any {
    
    switch self {
        case let .intType(value): return value
        case let .strType(value): return value
    }
}


static func kj_convert(from value: Any) -> PropertyValue? {
    
    if let value = value as? String { return .strType(value) }
    if let value = value as? Int { return .intType(value) }

    return nil
}

}
这样会闪退,但如果改成
static var kj_valueType: Any.Type {
return Int.self
}
或者
static var kj_valueType: Any.Type {
return String.self
}
就会有一种情况拿不到值。协议方法kj_valueType能改成接收一个参数,根据参数传入的类型来返回数据类型吗?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions