[swift] SwiftEventBus를 사용하여 댓글 작성 완료 이벤트 처리하는 방법은 어떻게 되는가?

SwiftEventBus는 Swift 언어로 작성된 이벤트 버스 라이브러리입니다. 이 라이브러리를 사용하면 여러 컴포넌트 간에 이벤트를 손쉽게 전달할 수 있습니다. 댓글 작성 완료 이벤트를 처리하기 위해 SwiftEventBus를 사용하는 방법을 알아보겠습니다.

먼저, SwiftEventBus를 프로젝트에 추가해야 합니다. CocoaPods를 사용하는 경우, Podfile에 다음과 같이 SwiftEventBus를 추가합니다:

platform :ios, '10.0'
use_frameworks!

target 'YourProject' do
  pod 'SwiftEventBus'
end

그리고 터미널에서 pod install 명령어를 실행하여 SwiftEventBus를 다운로드하고 프로젝트에 추가합니다.

이제 댓글 작성 완료 이벤트를 보내는 쪽에서 다음과 같이 이벤트를 발생시킬 수 있습니다:

import SwiftEventBus

func postComment() {
    // 댓글 작성 로직 실행
    
    SwiftEventBus.post("commentPosted")
}

위 코드에서 SwiftEventBus.post("commentPosted")는 “commentPosted”라는 이벤트를 발생시키는 부분입니다. 댓글 작성이 완료되면, 이 코드를 호출하여 이벤트를 발생시킬 수 있습니다.

댓글 작성 완료 이벤트를 받는 쪽에서는 다음과 같이 이벤트를 처리할 수 있습니다:

import SwiftEventBus

override func viewDidLoad() {
    super.viewDidLoad()
    
    SwiftEventBus.onMainThread(self, name: "commentPosted") { result in
        // 댓글 작성 완료 이벤트를 처리하는 로직을 작성합니다
        print("댓글 작성 완료 이벤트를 받았습니다.")
    }
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    
    SwiftEventBus.unregister(self)
}

위 코드에서 SwiftEventBus.onMainThread는 “commentPosted” 이벤트를 받는 부분입니다. 이벤트를 받았을 때 수행할 로직을 클로저 안에서 작성합니다.

위 코드에서는 viewDidLoad에서 이벤트를 처리하고 있습니다. 이벤트를 더 이상 받지 않을 때는 viewWillDisappear에서 SwiftEventBus.unregister(self)를 호출하여 이벤트 리스너를 등록 해제해야 합니다.

이제 댓글 작성 완료 이벤트를 SwiftEventBus를 사용하여 처리할 수 있습니다. 필요에 따라 이벤트에 데이터를 추가하거나, 다른 이벤트를 사용할 수도 있습니다. SwiftEventBus는 간편하게 이벤트를 전달하고 처리할 수 있는 유용한 라이브러리입니다.

참고 자료: