\
2014年07月29日
Posted by 屋台ブルー at 2014年07月29日00:00 Comment(0)

Swiftで遊ぼう! - 21 初期化は続く、まだ継承のない複雑なやつ

swift_logoいつまでもイニシャライザーが続く。やっとDelegation(委任)タイプのイニシャライザーだ。クラスのイニシャライザーは継承という概念という機能が入るから更に複雑なようだけど、シンプルなstruct型でさえも混乱しそう。

struct Size {
var width = 0.0, height = 0.0
}

struct Point {
var x = 0.0, y = 0.0
}

struct Rect {
var origin = Point()
var size = Size()
init() {}
init(origin: Point, size:Size){
self.origin = origin
self.size = size
}
init(center: Point, size:Size){
let originX = center.x - (size.width / 2)
let originY = center.y - (size.height / 2)
self.init(origin: Point(x: originX, y: originY), size:size)
}
}

let centerRect = Rect(center: Point(x: 4.0, y: 4.0), size: Size(width: 3.0, height: 3.0))

var x = centerRect.origin.x //これは2.5になってるんですよね。

このstruct型のRectには3つのタイプの初期化宣言ができる。
let centerRect = Rect()
こうしたらデフォルト型のイニシャライザーが呼ばれる。
centerRect.origin.xは0.0だよね。
2番目のイニシャライザーは、Memberwiseイニシャライザー(なんと訳せばいいのか分からない)なので引数を渡してやるといい。
ここまでのイニシャライザーしか使わないのであれば、1番目と2番目のイニシャライザーの記述はいらない。
ここで委任タイプのイニシャライザーが3番目である。
centerというPointのインスタンスを渡してoriginを指定する予定。


同じカテゴリー(Swiftで遊ぼう!)の記事画像
Swiftで遊ぼう! - プログラミングまとめ(ときどき更新)
Swiftで遊ぼう! - 番外編 - Xcode6:ショートカットと用語説明
Swiftで遊ぼう! - 209 - ルートビューのコードは続く:CGRect
Swiftで遊ぼう! - 208 - ルートビューのコード
Swiftで遊ぼう! - 207 - ツールバーボタンとビューコントローラーを繋ぐ
Swiftで遊ぼう! - 206 - ビューコントローラーにビューコントローラーを載せる
同じカテゴリー(Swiftで遊ぼう!)の記事
 Swiftで遊ぼう! - プログラミングまとめ(ときどき更新) (2021-01-31 00:00)
 Swiftで遊ぼう! - 番外編 - Xcode6:ショートカットと用語説明 (2015-04-05 00:00)
 Swiftで遊ぼう! - 209 - ルートビューのコードは続く:CGRect (2015-02-06 00:00)
 Swiftで遊ぼう! - 208 - ルートビューのコード (2015-02-05 00:00)
 Swiftで遊ぼう! - 207 - ツールバーボタンとビューコントローラーを繋ぐ (2015-02-04 00:00)
 Swiftで遊ぼう! - 206 - ビューコントローラーにビューコントローラーを載せる (2015-02-03 00:00)

上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
Swiftで遊ぼう! - 21 初期化は続く、まだ継承のない複雑なやつ
    コメント(0)