我有一个关于镜子反射的问题。
我将我的结构转换为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可以从对象创建字典,也可以从字典创建对象。