如何使用swift语言将镜像转换为原始类或结构

如何使用swift语言将镜像转换为原始类或结构,swift,swift4.2,Swift,Swift4.2,我有一个关于镜子反射的问题。 我将我的结构转换为镜像,迭代所有属性以获取值,迭代并更改属性中的值后,我需要使用我编辑的值将镜像再次转换为原始结构,但我不能,swift语言有方法进行此转换吗 下面的代码 //MARK:- loop get tags func getTags(filter: Any){ let getTags = Mirror(reflecting: filter) for (tag) in getTags.children {

我有一个关于镜子反射的问题。 我将我的结构转换为镜像,迭代所有属性以获取值,迭代并更改属性中的值后,我需要使用我编辑的值将镜像再次转换为原始结构,但我不能,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中仍然可用的函数创建Objects。您可以使用setValue forKey函数设置属性。您的对象需要从NSObject派生


这样做并考虑所有场景是一个相当大的挑战。有一个CocoaPod库可以帮助解决这个问题。看看你可以从你的对象创建一个字典,从你的字典创建一个对象。

有人问了一会儿。。但以防万一,我想你可能正在寻找

你到底需要什么?使用
Mirror
代价高昂,而且由于Swift是类型安全语言,你应该知道你使用的是哪种类型我有一个自定义结构,我使用反射来获取属性并遍历所有属性。要在编辑后对值执行某些操作,我需要将其转换回自定义结构并通过通知中心发送。你为什么不使用
结构
?如果您确切地知道使用的是什么类型,那么使用
Mirror
是没有意义的。正如我告诉您的,我需要通过循环访问自定义结构中的所有属性,并且它有许多属性。我不能使用struct,因为我必须迭代所有属性和编辑的值,这取决于某些条件,所以我使用了mirror。你有没有设法找到一个简洁的解决方案来解决这个问题?