Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > Enum

Enum

定数を列挙する方法です。phpのdefineの様なものです。例えばフルーツのEnumタイプにapple, orange,grape等。同じカテゴリーに 属する名称をリスト化して、アクセスしやすいメンテしやすいようにすることができます。


参考:SwiftのENUM
参考:Enums and Structs in Swift

まずやってみます

まずサラリーマンの階級をEnumにしてみます。


//平社員、部長、社長
enum SalarymanType {
  case hira
  case buchou
  case shacho
}


//横一行で宣言することもできます。caseの文字が省略できるので節約できます。
enum Salaryman { hira,buchou,shacho }

社長はサラリーマンというか経営者ですのでエラーかもしれませんが、、、、一例としてこのまま進ませていただきます。


以下のように利用できます


//meやyouのtypeがSalarymanType型であることが前提
var me.type = SalarymanType.hira
var me.type : SalarymanType = .hira

if (you.type == SalarymanType.shacho){
    print("お友達になってください");
}


Enumの中で関数も作成可能です


enum SalarymanType {
  case hira
  case buchou
  case shacho
}

func toString() -> String {
    switch self
    case .hira:
      return "平社員"
    case .buchou:
      return "部長"
    case .shacho:
      return "社長"
  }

print (me.type.toString());//平社員


Enum宣言時に値をいれて取り出すこともできます


enum SalarymanType {
  case hira ="平社員"
  case buchou="部長"
  case shacho="社長"
}

print(me.type.rawValue);//平社員


宣言時に複数の値を持たせることも、、、なんだか使い方が多岐にわたっています


enum Salaryman {
  case name(String,String)
  case salary(Short)
}
//利用方法
var name = User.Name("スイフト", "太郎")
switch name {
  case. name(let lastName, let firstName):
    let fullName = "\(lastName) \(firstName)"
    println(fullName) // スイフト 太郎
  case. salary(let salary):
    let salary = salary
}

まとめ

Enumに関数をいれたり変数いれて管理できるようですが、ここまでするのであればクラス化して管理した方がわかりやすいのかなと思っていました。 Enum=単純なリストとする方がメンテもダイレクトで簡単な気がします。(私のまだまだ未熟なプログラマ経験の上ですが、、)。Enumは名称さえ間違わなければ 拡張しやすくコーディングをわかりやすくできる方法ですので、適材適所で利用できればと思います。

↓こんな記事もありますよ!

Facebook SDKを試してみる(ログイン)

さて、前回記事でSDKをダウンロードした状態ですので、プロジェクトに追加してみましょう。 SDKがインストールされたDirectoryへ移動します。必要なSDKはFBSDKCoreKit.fraweworkなので、何個かその他frameworkはありますが、 それだけをプロジェクトにドラッグしてみましょう。

アプリから電話をかける

Objective-Cではサンプルがありましたが日本語では無かったので共有です!

willsetとdidsetでプロパティを監視。意味あるのか???

クラスのプロパティにはWillsetとdidsetという監視用の関数があると聞いたのですが、用途は分かるにしても メリットとしてはどういうものなのかなと、うーん、と考えていました。調べていると海外のサイトでは同じように疑問にもつ質問があがっていました。 getとsetで同じことができるのでは?との私と同じスタンスです。解決されていましたので、順に説明していきます。
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!