Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Swift チャチャチャ #love_swift

1,509 views

Published on

Swift 愛好会で『Swift チャチャチャ』について発表してきました。

Published in: Software
  • Be the first to comment

Swift チャチャチャ #love_swift

  1. 1. /* 2016.06.27 */ /* 集まれ Swift好き! Swift愛好会 vol8 */
  2. 2. /** */
  3. 3.
  4. 4. 
 
 紙版は絶版、電⼦書籍は販売中
  5. 5. 
 #love_swift
  6. 6. /* 2016/06/13 2016/06/17 */
  7. 7. /* Wikipedia より引用 */
  8. 8. sin ✓ = p 3 cos ✓ この式が成り立つときの sinθ、cosθ、tanθの値を求める
  9. 9. sin ✓ = p 3 cos ✓ この式が成り立つときの sinθ、cosθ、tanθの値を求める
  10. 10. sin ✓ cos ✓ = p 3 1 sin ✓ cos ✓ = tan ✓ まず、次の関係性がある 問題の式を変形すると… θ cos sin tan
  11. 11. sin ✓ cos ✓ = p 3 1 問題の変形から比が判る 1 p 3 三平方の定理を使って… θ cos sin tan x2 = 12 + p 3 2 x = p 1 + 3 = 2 x
  12. 12. 1 p 3 2 θ cos sin tan 各辺の比から sin ✓ = p 3 2 , cos ✓ = 1 2 元の式と三角関数の関係から tan ✓ = p 3
  13. 13. // あるインスタンスメソッドの処理を初回だけ実行して viewController.prepare() // Do Something // それ以降は、呼び出しても何もしないようにしたい viewController.prepare() // Do Nothing viewController.prepare() // Do Nothing
  14. 14. // あるインスタンスメソッドの処理を初回だけ実行して viewController.prepare() // Do Something // それ以降は、呼び出しても何もしないようにしたい viewController.prepare() // Do Nothing viewController.prepare() // Do Nothing
  15. 15. final class ViewController : UIViewController { private(set) var prepare: Void = { print("Prepared") }() } // STEP1: この時点では初期化時点での実行になる let object = ViewController(nibName:nib, bundle:nil)
  16. 16. final class ViewController : UIViewController { private(set) lazy var prepare: Void = { print("Prepared") }() } // STEP2: プロパティ参照で初回参照時のみの実行になる object.prepare as Void
  17. 17. final class ViewController : UIViewController { private(set) lazy var prepare: () -> Void = { print("Prepared") return {} }() } // STEP3: 初回だけ実行される関数として使える object.prepare()
  18. 18. final class ViewController : UIViewController { // ここに Interface Builder でラベルを連結 private var noteLabel: UILabel }
  19. 19. final class ViewController : UIViewController { // ここに Interface Builder でラベルを連結 private var noteLabel: UILabel }
  20. 20. final class ViewController : UIViewController { // STEP1: @IBOutlet を付けると IB から連結可能 @IBOutlet private var noteLabel: UILabel }
  21. 21. final class ViewController : UIViewController { // STEP2: 使用時までに初期化を間にあわせる決意 @IBOutlet private var noteLabel: UILabel ! }
  22. 22. final class ViewController : UIViewController { // STEP3: 変更を監視して速やかに設定(コードも明瞭) @IBOutlet private var noteLabel: UILabel ! { didSet { noteLabel.text = "(arc4random())" } } }
  23. 23. final class ViewController : UIViewController { private lazy var prepareAtFirstTime: () -> Void = { print("Prepared") return {} }() override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) prepareAtFirstTime() } } 

  24. 24. final class ViewController : UIViewController { @IBOutlet private var noteLabel: UILabel ! { didSet { noteLabel.text = "(arc4random())" } } } 

  25. 25. Enjoy! Swift /* Thank you */

×