- 追加された行はこの色です。
- 削除された行はこの色です。
-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よりは簡単だろう。