微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用反射在Swift中更改属性

我正在尝试创建一个将更改对象属性的序列化程序.

例:

class testobj{
    var prop1:Int = 3
    var prop2:String = "Hello"
    var prop3:Dictionary<String,String> = Dictionary<String,String>()
}

我知道我可以使用访问属性名称和类型

reflect(testobjc())[0].1

var tester = testobj()
_std_lib_DemangledTypeName(tester.prop1)

但我想做的事情是这样的

var tester = testobj()
for(var x:Int = 0; x < reflect(testobj()).count; x++){
    if(_std_lib_DemangledTypeName(tester.(reflect(testobj())[0].1)) == "Swift.String"){
        tester.(reflect(testobj())[0].1) = "World!"
    }
}

本质上,我想遍历为给定类列出的所有属性,并在该类的新创建的对象上设置属性.任何指导将不胜感激.快速反射对我来说是新的.

解决方法

您可以使用此类从字典中创建字体形式的对象和对象.
https://github.com/evermeer/EVReflection

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐