相关疑难解决方法(0)

Swift通用对象/ JSON序列化

tl; dr您是否可以使用符合协议的初始化方法一般地实例化对象,同时还保留对象的预期类型?我现在正在尝试的是seg faulting编译器.


在我正在编写的库中,我正在尝试使用Swift有限的内省功能来实现一般化序列化/反序列化对象的目标.

以下是使用反射设置变量值的全局函数的代码.如果找到字典,它会尝试协调嵌套构造:

func model__setValue<T where T: NSObject, T: Serializable>(value: AnyObject, forSerializationKey key: String, model m: T) {
    let varNames = object__getVarNames(mirror: reflect(m)) // Gets a list of this object's variable names
    if let i = find(m.serializationKeys, key) {
        if value is [String : AnyObject] {
            // This allows us to have nested dictionary representations
            // of Serializable constructs and have them init properly
            let t1 = reflect(m)[i].1.valueType as NSObject.Type
            if t1 is Serializable.Type {
                let t2 …
Run Code Online (Sandbox Code Playgroud)

generics serialization swift

6
推荐指数
1
解决办法
1924
查看次数

标签 统计

generics ×1

serialization ×1

swift ×1