【问题标题】:Custom/Dynamic properties on objects/structs对象/结构的自定义/动态属性
【发布时间】:2017-02-15 16:15:51
【问题描述】:

是否可以在 Swift 中创建具有“动态”属性的结构?

即如果我有一个从某些 JSON API 返回的字典,并且我在构建时知道它有 nameid

然后我可以构建一个类似...的结构

struct MyStruct {
    let name: String
    let id: String
}

但是,如果字典有一个自定义属性,如 age... 我可以在运行时向结构添加类型属性吗?

我知道(认为)这种事情在 Objective-C 中是可能的,但运行时控制要多得多。

在 Swift 中可以吗?

谢谢

【问题讨论】:

标签: swift runtime dynamic-properties


【解决方案1】:

只需在类中添加一个可选变量,如下所示:

var age: Int?

希望有帮助

【讨论】:

  • 是的,但我不能使用myObject.age 并获得输入输出。如果那是不可能的,我将退回到使用原始字典并且根本没有结构:D
  • 对不起,我的意思是将年龄存储为可选,我已经编辑了我的答案
  • 但前提是我在编译时知道有一个叫做age的东西。在编写代码时,我不一定知道将存在哪些属性类型和名称。 (如果这有意义的话)。
  • 是的,因为你的变量 age 现在被声明为一个可选的,你总是必须在使用它时使用'?'解开这个值。参数
  • 是的,但我不知道它在编译时可能会被调用什么。代码分发后会发生变化。它可能是age,也可能是另一个名为blahBlahSomethingCustom 的属性或其他名称。关键是,我不知道在编写代码时自定义属性将被调用或将被调用。
猜你喜欢
  • 1970-01-01
  • 2023-01-12
  • 1970-01-01
  • 2020-08-13
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
  • 2017-11-02
相关资源
最近更新 更多