-ObjectiveCに変わる主力となれるか? *ライブラリ [#r47b4bb3] **ライブラリ管理 [#j995b511] podfiles -PromiseKit(非同期処理) -Moya(APIアクセス) **Moya [#n9447217] -Almofire(APIアクセス)をラップしたもの -TargetTypeを拡張してAPI接続情報を作成 *他言語との対比 [#g62f625e] **他言語にあるもので同じもの [#i628ec3b] |static|static var totalCount : Int,computedやメソッドの場合はclassをつける| |internal/private/public|internal=publicでswiftの場合はデフォルトinternal。publicはFrameworkdで使うもので通常は使わない| |abstract|optional| **他言語にあるもので違うもの [#u5f894db] |plist|properties| |Optional|?で宣言して、!でget。Optionalチェーンは?でない場合はnil| |コンストラクタ|init(),deinit()| |property|読み取り専用のlet,通常のvar,さらに計算結果のみを返すcomputedプロパティはgetter,setterに計算メソッドを持たせるイメージ| **多言語にないもの [#dca3baff] |protocol|約束事、interfaceのようなもの| |property observer|willSet,didSet,initの3つのメソッドを追加できる。ここまで来るとクラスの小さいバージョンのようだ| |extension|簡単にクラスを拡張できる| |protocol|継承よりもこちらのほうが良いのでは?特に親クラスが肥大化するようなケースで| **基本文法 [#me48ce36] ***定義 [#nddc479c] let hoge = "変えられない値" var hoge = "変えられる値" var hoge:String //定義だけも可能 ***連結 [#t4ac48e9] 文字列同士ならJavaと一緒。文字列と数値はそのまま連結できない。変数を表す()で囲んで使うか。toStringを使う let score = 123 let result = "\(score)点" let scoreString = toString(score) ***オプショナル [#b14a6711] var name1: String! var name2: String? 使う時は!がget print(name2!) 宣言時に!だと、使用時に!不要だけどnilだと落ちるので注意 print name1 ***制御文 [#jf0cbc24] ほぼJavaと一緒。Case文は無用なbreakが不要なのでJavaよりは簡単だろう。