gpt4 book ai didi

swift - 将字典变成自定义类型

转载 作者:行者123 更新时间:2023-11-30 12:20:11 25 4
gpt4 key购买 nike

我使用 Mirror 将所有自定义类转换为字典,以便使用类似 plist 的结构保存它们。使用 Mirrors,我只需按名称存储每个值,因此具有变量“title”的类将变成一个具有键“title”及其在字典中的值的字典。

问题是,如何扭转这种情况?我在每个字典中存储“类型”信息,所以我知道字典应该变成哪种类型,但我不知道如何进行转换。我曾经在 Objective-C 中使用 setValue: forKey:,但当我转向 Swift 时,我有很多结构不再适用。

我能想到的唯一解决方案是让所有自定义类型都符合描述 init(dictionary: [String: Any]) 函数的协议(protocol),然后手动将字典转换为类型那里。然后,在我的通用转换器函数中,我获取类型并通过 switch 语句简单地调用正确类型的 init 。不过,手动编写似乎非常愚蠢

title = dictionary["title"]

对于我在整个应用程序中拥有的数千个属性。有没有更简单的方法?

最佳答案

我认为您提出的选项是一个不错的选择。我建议使用可选的 init,例如 init?(dictionary: [String: Any]),如果您打算这样做,那么您可以确保某些键值对可用,并且如果您的最终对象不完整,则返回 nil。

但是,听起来您绝对可以从 Mantle 这样的东西中受益。或ObjectMapper ,两者都可以很好地处理序列化。

关于swift - 将字典变成自定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44886520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com