我有一个关于镜子反射的问题。
我将我的结构转换为mirror来遍历所有属性以获取值,在我遍历它并更改属性中的值之后,我需要用我编辑但不能编辑的值再次将mirror转换为原始结构,swift语言有办法进行这种转换吗?
下面的代码

//MARK:- loop get tags
    func getTags(filter: Any){

        let getTags = Mirror(reflecting: filter)
        for (tag) in getTags.children {

            if let getTag = tag.value as? String {
                if let _ = Int(getTag) {

                }else {
                    if getTag != "" && getTag != "All" {
                        arrayOfTags.append(getTag)
                    }
                }
            }// if let
        }// end for loop

    }

谢谢

最佳答案

如果没有硬核内存操作,就不能构造结构。您可以使用仍然可以从Objective C获得的函数创建objets。您可以使用setValue forKey函数设置属性。您的对象需要从NSObject派生。
要做到这一点并考虑到所有的场景是一个相当大的挑战。有一个椰子荚图书馆可以帮助解决这个问题。查看EVReflection可以从对象创建字典,也可以从字典创建对象。

10-01 23:04