-
Notifications
You must be signed in to change notification settings - Fork 131
Open
Description
数据中有个字段类型不确定,可能是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
Labels
No labels