開発メモ

開発関係のメモをいろいろと。たぶん。

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

  • 複数行のコメントはネストできるよ
  • nilが一緒に使えるのはオプション変数だけだよ
  • いろいろ考えるとオプショナルバインディングの方がおすすめ

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の問題点 - 開発メモ
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 作成)