Callback


Callbacks
  • コードで直接関数を呼び出すのではなく、トリガなどの特定のイベント時に関数を呼び出す
  • 1. property : () -> ()
    // 공의 위치를 굴뚝으로 이동시킨다.
    func dropBall() {
    	circle.position = funnel.position
    }
  • onTappedのタイプ:() -> ()(パラメータX、X関数を返します)
  • dropBall()パラメータや戻り値がないのでonTappedタイプと同じ
  • dropBall()コールバック関数に割り付け可能
  • // 굴뚝을 터치 시 dropBall() 함수 실행
    // funnel.onTapped = dropBall() (X) 
    funnel.onTapped = dropBall
    < control modifier >
  • public:APIユーザーがアクセスできる属性
  • private:APIユーザーアクセス禁止
  • 2. property : (Shape) -> ()
    // 공이 다른 물체와 충돌 시 다른 물체의 색을 초록색으로 변경
    func ballCollided(with otherShape: Shape) {
    	otherShape.fillColor = .green
    }
  • onCollisionのタイプ:(Shape) -> ()(パラメータ:Shapeタイプ、リターンX関数)
  • ballCollided(with:)ShapeタイプのパラメータがあるのでonCollisionタイプと同じ
  • ballCollided(with:)コールバック関数に割り付け可能
  • // 충돌한 물체가 파라미터로 입력된다.
    // ball.onCollision = ballCollided 가능하지만 권장하지 않음
    ball.onCollision = ballCollided(with:)
    3. function parameter : () -> ()
  • パラメータcompletionのタイプ:() -> ()
  • presentAlert(text:completion:)運転->新関数呼び出し
  • scene.presentAlert(text: "You won!", completion: alertDismissed)
    
    # 알람이 울린 후, 아무 일도 일어나지 않음
    func alertDismissed() {
    }