Swift チャチャチャ #love_swift

42
/* 2016.06.27 */ /* 集まれ Swift好き! Swift愛好会 vol 8 */

Transcript of Swift チャチャチャ #love_swift

Page 1: Swift チャチャチャ #love_swift

/* 2016.06.27 */ /* 集まれSwift好き! Swift愛好会 vol8 */

Page 2: Swift チャチャチャ #love_swift

/**

*/

Page 3: Swift チャチャチャ #love_swift
Page 4: Swift チャチャチャ #love_swift

紙版は絶版、電⼦書籍は販売中

Page 5: Swift チャチャチャ #love_swift
Page 7: Swift チャチャチャ #love_swift

/* 2016/06/13 2016/06/17 */

Page 8: Swift チャチャチャ #love_swift
Page 9: Swift チャチャチャ #love_swift
Page 10: Swift チャチャチャ #love_swift
Page 11: Swift チャチャチャ #love_swift

/* Wikipedia より引用 */

Page 12: Swift チャチャチャ #love_swift
Page 13: Swift チャチャチャ #love_swift
Page 14: Swift チャチャチャ #love_swift
Page 15: Swift チャチャチャ #love_swift
Page 16: Swift チャチャチャ #love_swift

sin ✓ =

p3 cos ✓

この式が成り立つときの sinθ、cosθ、tanθの値を求める

Page 17: Swift チャチャチャ #love_swift

sin ✓ =

p3 cos ✓

この式が成り立つときの sinθ、cosθ、tanθの値を求める

Page 18: Swift チャチャチャ #love_swift

sin ✓

cos ✓=

p3

1

sin ✓

cos ✓= tan ✓

まず、次の関係性がある

問題の式を変形すると…

θcos

sintan

Page 19: Swift チャチャチャ #love_swift

sin ✓

cos ✓=

p3

1

問題の変形から比が判る

1

p3

三平方の定理を使って…θ

cos

sintan

x

2 = 12 +p32

x =p1 + 3 = 2

x

Page 20: Swift チャチャチャ #love_swift

1

p3

2

θcos

sintan

各辺の比から

sin ✓ =

p3

2

, cos ✓ =

1

2

元の式と三角関数の関係から

tan ✓ =p3

Page 21: Swift チャチャチャ #love_swift
Page 22: Swift チャチャチャ #love_swift
Page 23: Swift チャチャチャ #love_swift
Page 24: Swift チャチャチャ #love_swift
Page 25: Swift チャチャチャ #love_swift
Page 26: Swift チャチャチャ #love_swift

// あるインスタンスメソッドの処理を初回だけ実行して viewController.prepare() // Do Something

// それ以降は、呼び出しても何もしないようにしたい viewController.prepare() // Do Nothing viewController.prepare() // Do Nothing

Page 27: Swift チャチャチャ #love_swift

// あるインスタンスメソッドの処理を初回だけ実行して viewController.prepare() // Do Something

// それ以降は、呼び出しても何もしないようにしたい viewController.prepare() // Do Nothing viewController.prepare() // Do Nothing

Page 28: Swift チャチャチャ #love_swift

final class ViewController : UIViewController { private(set) var prepare: Void = { print("Prepared")

}() } // STEP1: この時点では初期化時点での実行になる let object = ViewController(nibName:nib, bundle:nil)

Page 29: Swift チャチャチャ #love_swift

final class ViewController : UIViewController { private(set) lazy var prepare: Void = { print("Prepared")

}() } // STEP2: プロパティ参照で初回参照時のみの実行になる object.prepare as Void

Page 30: Swift チャチャチャ #love_swift

final class ViewController : UIViewController { private(set) lazy var prepare: () -> Void = { print("Prepared") return {} }() } // STEP3: 初回だけ実行される関数として使える object.prepare()

Page 31: Swift チャチャチャ #love_swift
Page 32: Swift チャチャチャ #love_swift

final class ViewController : UIViewController {

// ここに Interface Builder でラベルを連結 private var noteLabel: UILabel }

Page 33: Swift チャチャチャ #love_swift

final class ViewController : UIViewController {

// ここに Interface Builder でラベルを連結 private var noteLabel: UILabel }

Page 34: Swift チャチャチャ #love_swift

final class ViewController : UIViewController {

// STEP1: @IBOutlet を付けると IB から連結可能 @IBOutlet private var noteLabel: UILabel }

Page 35: Swift チャチャチャ #love_swift

final class ViewController : UIViewController {

// STEP2: 使用時までに初期化を間にあわせる決意 @IBOutlet private var noteLabel: UILabel ! }

Page 36: Swift チャチャチャ #love_swift

final class ViewController : UIViewController {

// STEP3: 変更を監視して速やかに設定(コードも明瞭) @IBOutlet private var noteLabel: UILabel ! { didSet { noteLabel.text = "\(arc4random())" } } }

Page 37: Swift チャチャチャ #love_swift
Page 38: Swift チャチャチャ #love_swift

final class ViewController : UIViewController { private lazy var prepareAtFirstTime: () -> Void = { print("Prepared") return {} }()

override func viewWillAppear(_ animated: Bool) {

super.viewWillAppear(animated) prepareAtFirstTime() } }

Page 39: Swift チャチャチャ #love_swift

final class ViewController : UIViewController {

@IBOutlet private var noteLabel: UILabel ! { didSet { noteLabel.text = "\(arc4random())" } } }

Page 40: Swift チャチャチャ #love_swift
Page 41: Swift チャチャチャ #love_swift
Page 42: Swift チャチャチャ #love_swift

Enjoy! Swift/* Thank you */