基本形
例えば、性別に関する列挙型を利用したいとします。
まず、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())
→女性