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 에 데이터가 추가되면
관련 기능이 수행됩니다
- input 에 데이터가 추가되면
- output
- input 에 의한 기능 수행되면
자동으로 output 의 데이터가 자동으로 전달되며
output 에 대한 기능이 수행됩니다
- input 에 의한 기능 수행되면
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 |