解包变量,如果它是一个快速可选?

时间:2016-10-28 16:26:09

标签: swift

我试图确定Any类型的变量是否是可选的,如果是,我需要打开它。这可能吗?这段代码解释了我想要实现的目标。我知道Optional是通用的,我编码的方式不会起作用,想知道是否有解决方法

extension Serializable {
    public func serialize() -> [String: Any] {
        var result = [String: Any]()
        let mirror = Mirror(reflecting: self)

        for child in mirror.children {
            guard let label = child.label else { continue }

            if let optional = child.value as? Optional {
                if case Optional.some(let value) = optional {
                    result[label] = value
                }
            }
            else {
                result[label] = child.value
            }
        }

        return result
    }
}

1 个答案:

答案 0 :(得分:0)

我能够让它工作

I/art: current process_level is : 0
I/progress: 100
I/progress: 100
I/progress: 100
I/System: core_booster, getBoosterConfig = false
I/Process: Sending signal. PID: 32382 SIG: 9
Application terminated.