swift - 创建 Swift 属性

标签 swift dynamic properties

我想在类或结构中创建 Swift 属性。我认为如果我可以在类内和其他类中的任何地方进行访问,代码将非常干净和漂亮。我遇到的问题是我希望它的类型是动态的。这可能吗?

代码

class A {
    var property: Any
    init() {
        switch B {
        case 1:
             property: String = "Hello World"
        case 2:
             property: Int = 1
        }
    }
} 

最佳答案

Any 是合法类型。但是您正在尝试进行某种类型的重新定义。我认为您正在寻找这样的东西:

public class A {
  public var someProperty: Any
  init(isString: Bool) {
    switch isString {
    case true:
      someProperty = "Hello World"
    case false:
      someProperty = 1
    }
  }
}

let foo = A(isString: true)
print(foo.someProperty)
let bar = A(isString: false)
print(bar.someProperty)

这会产生:

Hello World
1

您可以使用is(类型检查运算符)检查类型

关于swift - 创建 Swift 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34259496/

相关文章:

ios - 添加一个以 UIImageView 为中心的 CALayer 子层

ruby-on-rails - Rails chart.js 数据 CoffeeScript

asp.net-mvc-3 - 如何在MVC 3 RAZOR中动态设置图像路径

java - 使用 JMX 注册和更新应用程序属性

properties - 为什么在 D 中使用 @property?

python - 如何最好地实现一个只能调用一次 setter 的属性?

ios - 删除用户后 session 无效 Parse Server Swift

objective-c - WatchKit 接口(interface) : Is it possible to add multiple labels in a tableView group without any of the labels being pushed to the right?

arrays - 将数组中的可选值赋给 nil

c# - 通过动态访问 ValueTuple 项时出现 RuntimeBinderException