Swift関係のメモのまとめ
資料を読んだメモが思ってたより増えたので、メモのまとめのまとめを作成。気になったところを抜粋。
『The Swift Programming Language』のメモ
『Welcome to Swift』
Swiftの基本的な話。
A Swift Tour / Simple Values / Control Flow
The Swift Programming Languageのメモ(その1) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/05/182519
- 文の最後にセミコロンは必要ないよ
- 暗黙の型変換はないよ!(※要確認)
- 本文の前後の『{}』は絶対に必要だよ
- 適当な変数を書いても、勝手に0との比較はしないよ
Functions and Closures / Objects and Classes / Enumerations and Structures / Protocols and Extensions / Generics
The Swift Programming Languageのメモ(その2) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/06/203045
- 戻り値にはタプルも使えるよ
- 共通のスーパークラスなんてないよ!
- サブクラスで元のクラスのメソッドをオーバーライドする時は『override』を付けるよ
- メソッドの場合、引数名がメソッドを呼び出すときにも使われるよ
- 構造体は値渡しでクラスは参照渡しになるよ
『Language Guide』
Swiftのそれぞれの要素を細かく説明。
The Basics
The Swift Programming Languageのメモ(その3) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/07/193435
Basic Operators / Strings and Characters / Collection Types
The Swift Programming Languageのメモ(その4) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/08/195708
- 代入(=)は値を返さないよ!
- 通常の四則演算はオーバーフローを許さないよ
- 単項マイナス演算子を使う時は、変数との間にスペースを入れちゃ駄目だよ
- 定数の配列の場合、サイズは変更できないけど値は変更できるよ
Control Flow / Functions
The Swift Programming Languageのメモ(その5) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/09/195456
- 複数のcaseに当てはまる場合、最初にマッチしたcaseが使われるよ
- 外部引数名が設定されると、関数を呼び出すときに絶対に必要になるよ
Closures / Enumerations / Classes and Structures
The Swift Programming Languageのメモ(その6) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/10/194058
- クロージャは参照型だよ
- 列挙型の元の値は、複数のメンバーで、同じ値は使えないよ
- 深い階層のプロパティに直接代入できるよ!
- 配列のコピーは辞書より複雑だよ(※いろいろ、要注意)
Properties / Methods / Subscripts / Inheritance
The Swift Programming Languageのメモ(その7) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/11/192313
- クラスでは、型プロパティに計算するプロパティしか使えないよ
- 読み取り専用のプロパティを読み書きできるようにオーバーライド出来るよ
Initialization / Deinitialization / Automatic Reference Counting
The Swift Programming Languageのメモ(その8) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/12/191018
- イニシャライザーの引数名は全て、自動的に中と外で使われることになるよ
- 指定イニシャライザーをオーバーライドした時は、スーパークラスのイニシャライザーを呼び出すよ
- 便利イニシャライザーをオーバーライドした時は、同じクラスの指定イニシャライザーを呼び出すよ
- Swiftにはクロージャキャプチャリストがあるよ!
Optional Chaining / Type Casting / Nested Types / Extensions
The Swift Programming Languageのメモ(その9) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/13/191735
- エクステンションで便利イニシャライザーを追加することが出来るよ
- 指定イニシャライザーを追加することは出来ないよ
- deinitを追加することも出来ないよ
Protocols / Generics / Advanced Operators
The Swift Programming Languageのメモ(その10) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/14/235451
- プロトコルのオプション指定は『@objc』属性を付けたプロトコルだけが使えるよ。
- NOTE: Swiftの演算子は、CやObjective-Cに比べて優先度も結合規則もシンプルでわかりやすくなってるよ。逆に言うと、他の言語と全く同じじゃないよ。他の言語から既存のコードを移植する時は、注意が必要だよ。
- 自作のクラスや構造体は、デフォルトでは比較演算子を持ってないよ
『Language Reference』
細かい言語仕様の話。
いろいろ
The Swift Programming Languageのメモ(その11) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/15/195300
- switch文のcaseでマッチングに使われるのは『~=』演算子だよ
『Using Swift with Cocoa and Objective-C』のメモ
Getting Started / Interoperability
Using Swift with Cocoa and Objective-Cのメモ(その1) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/20/205708
- クロージャはブロックと同じように周りの変数をキャプチャするけど、変数が変更可能だよ
- Swiftには『performSelector:』は無いよ
- アウトレットは、自動でweakになってnilで初期化されるよ
- SwiftはNSUIntegerもNSIntegerもIntにするよ
Interoperabilityの続き / Mix and Match / Migration
Using Swift with Cocoa and Objective-Cのメモ(その2) - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/21/203114
- Swiftのコンパイラには、プリプロセッサは無いよ
- Swiftの機能でObjective-Cからは使えないものもあるよ
Swiftの問題点
Swiftの問題点 - 開発メモ
http://seeku.hateblo.jp/entry/2014/06/16/200748
- Xcode6の正式版が出るまでに、どれだけ修正されるのか・・・
資料いろいろ
iTunes - ブック - Apple Inc.「The Swift Programming Language」
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
iTunes - ブック - Apple Inc.「Using Swift with Cocoa and Objective-C」
https://itunes.apple.com/jp/book/using-swift-cocoa-objective/id888894773?mt=11
iOS Developer Library
https://developer.apple.com/library/prerelease/ios/navigation/
(2014/06/23 作成)