idghst.dev
article thumbnail
Published 2023. 3. 13. 09:00
[ Swift ] Combine - 실습 Swift
728x90
반응형

Combine 초기화

컴바인 subscription 저장소를 만들어줍니다

var subscription = Set<AnyCancellable>()

 

입력용 publisher 를 설정 해줍니다

let didSelect = PassthroughSubject<AppleFramework, Never>()

 

출력용 publisher 를 설정 해줍니다

let items = CurrentValueSubject<[AppleFramework], Never>(AppleFramework.list)

 

구독 기능 수행을 위한 함수

  • 함수 실행 시, input 과 output 에 대한 구독을 진행합니다
  • Input
    • input 에 데이터가 추가되면
      관련 기능이 수행됩니다
  • output
    • input 에 의한 기능 수행되면
      자동으로 output 의 데이터가 자동으로 전달되며
      output 에 대한 기능이 수행됩니다
private func bind() {
    // input
    didSelect
        .receive(on: RunLoop.main)
        .sink { [unowned self] framework in
            let storyboard = UIStoryboard(name: "Detail", bundle: nil)
            let viewController = storyboard.instantiateViewController(withIdentifier: "AppleFrameworkDetailViewController") as! AppleFrameworkDetailViewController
            viewController.framework.send(framework)
            self.present(viewController, animated: true)
        }.store(in: &subscription)

    // output
    items
        .receive(on: RunLoop.main)
        .sink { [unowned self] list in
            self.applySectionItems(list)
        }.store(in: &subscription)
}
728x90
반응형

'Swift' 카테고리의 다른 글

[ Swift ] Network - 실습  (0) 2023.03.17
[ Swift ] Network - 개념  (0) 2023.03.15
[ Swift ] Combine - Operator  (0) 2023.03.08
[ Swift ] Combine - Subscriber  (0) 2023.03.06
[ Swift ] Combine - Publisher  (0) 2023.03.03
profile

idghst.dev

@idghst.dev

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!