Swift类自定义类型属性

时间:2016-07-07 10:54:46

标签: swift class properties

我遇到了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说它需要一个类型。

2 个答案:

答案 0 :(得分:3)

您可以使用enum来保存三种不同的状态。 E.g。

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

答案 1 :(得分:0)

  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

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

相关问题