[iOS] Completion Handler을 이용한 Loading Progress 구현
🍎 iOS/UIKit

[iOS] Completion Handler을 이용한 Loading Progress 구현

 

GitHub - krimpedance/KRProgressHUD: A beautiful and easy-to-use progress HUD for your iOS.

A beautiful and easy-to-use progress HUD for your iOS. - GitHub - krimpedance/KRProgressHUD: A beautiful and easy-to-use progress HUD for your iOS.

github.com

 

KRProgressHUD를 이용하여 Loading Progress를 구현해보자.

이제 pod init - pod '사용할라이브러리' - pod install의 루틴에 완벽 적응 ^-^v

 

 

 

Completion handler는 어떠한 일이 끝났을 때 진행할 업무를 담당하는 것이다.

 

클로저의 Escaping은 A 함수가 마무리된 상태에서만 B 함수가 실행되도록 함수를 작성할 수 있다는 점에서 유용하다.

즉, Escaping Closure를 활용하면 함수 사이에 실행 순서를 정할 수 있다는 뜻이다.

 

아래는 이를 활용해 Loading Progress를 구현해낸 코드이다.

 

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        print("viewDidLoad() called")

        KRProgressHUD.show()

        changedTitle(completionHandler: { result in
            print("completion block으로 넘겨받음: \(result)")
            KRProgressHUD.showSuccess()
            self.blogTitle.text = result
        })
        
    }

    fileprivate func changedTitle(completionHandler: @escaping(String) -> ()){
        
        print("completionBlock() called")
        
        // delay
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            // do stuff 2 seconds later
            completionHandler("Loading Completed!")
        }

    }

 

결과물

 

💡 공부가 필요한 부분: Completion handler, 비동기 처리, Closure

 

 

⛰ 넘어 ⛰

할게 많다 ㅎ