【问题标题】:Swift Class Custom Type PropertySwift 类自定义类型属性
【发布时间】:2016-07-07 10:54:45
【问题描述】:

我在使用 Swift 类属性时遇到问题,我不知道要搜索什么。

我想创建这样的东西:

defenceSystem.status = status.online
defenceSystem.status = status.offline
defenceSystem.status = status.destroyed

所以基本上我希望status 属性(或类;不确定它应该是什么)具有3 个值:onlineofflinedestroyed

但我希望这 3 个属性具有自定义类型,而不是 String、Int 或其他任何类型。基本上我不希望他们存储任何东西。只是为了表现得像旗帜。

我认为我应该这样写:

class defenceSystem {
    class status {
    // Declare the 3 status types
    }
    var status = status()
    defenceSystem.status = status.online
}

我试着写 var online 但 Xcode 说它需要一个类型。

【问题讨论】:

    标签: swift class properties


    【解决方案1】:

    您可以使用enum 来保存三种不同的状态。例如

    class DefenceSystem {
        enum Status {
            case Online
            case Offline
            case Destroyed
        }
    
        var status: Status
    
        init(status: Status) {
            self.status = status
        }
    }
    
    let defenceSystem = DefenceSystem(status: .Online)
    
    print(defenceSystem.status) // Online
    defenceSystem.status = .Offline
    print(defenceSystem.status) // Offline
    

    【讨论】:

      【解决方案2】:
        enum Status
          {
              case online
              case offline
              case destroyed
          }
      
          class defenceSystem:<Your Super class>
          {
                var status:Status
      
          }
      
      class ViewController: UIViewController {
      
          override func viewDidLoad()
          {
              super.viewDidLoad()
      
              let defence = defenceSystem();
      
              defence.status = Status.online
              print(defence.status)
              defence.status = Status.offline
              print(defence.status)
              defence.status = Status.destroyed
              print(defence.status)
      
           }
      }
      

      将枚举用于定义所有选项的状态,然后创建枚举属性并根据需要在枚举中设置值。

      https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Enumerations.html

      我希望你的要求得到满足。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-29
        • 1970-01-01
        • 2012-06-19
        相关资源
        最近更新 更多