LoginSignup
2
2

More than 5 years have passed since last update.

Swiftで列挙型を使う

Last updated at Posted at 2015-07-04

基本形

例えば、性別に関する列挙型を利用したいとします。

まず、NSObjectのサブクラスとしてSex.swiftというファイルをつくります。
作成したら、以下のようなクラスがつくられるかと思います。

import UIKit

class Sex: NSObject {

}

これを、以下のように書き換えます。

import UIKit

enum Sex {
    case MAN
    case WOMAN
}

そうすると、他のViewControllerなどでは以下のように利用できます。

println(Test.WOMAN.hashValue)
→ 1

WOMANの値に数値を指定して、取ってみよう

次に、MANとWOMANがどういった値を持つかを指定してあげます。
上記のコードを以下のように書き換えます。

enum Sex:Int {
    case MAN = 1
    case WOMAN = 2
}

すると、WOMANの値を取り出すときは、以下のように書きます。

println(Test.WOMAN.rawValue)
→ 2

WOMANのとき、文字列を取れるようにしてみよう

次に、指定した定数によって、ある文字列を返したり、数値を返したり等いろいろとやりたいという場合があると思います。
今回は、WOMANを指定した時は「女性」という文字列を取れるようにしたいと思います。

以下のように列挙型の中に関数を入れることで、それを可能にします。

enum Sex:Int {
    case MAN = 1
    case WOMAN = 2
    func toString() -> String {
        switch(self) {
        case .MAN:
            return "男性"
        case .WOMAN:
            return "女性"
        }
    }
}

すると、以下のように呼び出すことができ、「女性」という文字列を取得できます。

println(Sex.WOMAN.toString())
→女性
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2