现在,我可以使用Mirror类型检查对象的变量。但是我可以使用镜像为变量设置值吗?也许还有另一种纯Swift方式?

例如,我想从JSON创建一个对象(一个Swift struct)。是否可以不用子类化NSObject并为此使用Objective-C函数呢?

最佳答案

这是我目前能做的最好的事情。仍然缺少将mirrorObject转换回其通用类型的想法。仅供引用,这是使用SwiftyJSON

func convertToObject<T>(json: JSON, genericObject: T) -> T {
    let mirroredObject = Mirror(reflecting: genericObject)

    for (_, var attr) in mirroredObject.children.enumerate() {
        if let propertyName = attr.label as String! {
            attr.value = json[propertyName]
            print(propertyName)
            print(attr.value)
        }
    }
    // Figure out how to convert back to object type...
}

10-08 05:23
查看更多