Post

Combine 버튼 클릭 감지

Combine 버튼 클릭 감지

Combine 공부중 버튼 클릭 이벤트 처리 코드 정리

🍭 전체 코드

1
2
3
4
5
6
7
8
9
10
 let subscriptions = Set<AnyCancellable>()
 let navToNumberBtn = UIButton()
 
 
 navToNumbersBtn
            .tapPublisher
            .sink(receiveValue: {
                print(#fileID, #function, #line)
        })
        .store(in: &subscriptions)
  1. tagPublisher : 버튼 클릭 이벤트를 퍼블리셔로 변환
  2. .sink(receiveValue: ) : Publisher가 방출하는 값을 받아서 실행.
  3. .store(in: &subscriptions) :
    1. subscriptions 배열에 구독을 저장.
    2. 자동으로 메모리에서 해제되지 않도록 관리함.
    3. Combine의 sink, assign 같은 구독은 기본적으로 일회성 이므로, 별도로 저장하지 않으면 자동으로 취소됨.

퍼블리셔란

  • Combine에서 데이터를 스트림 형태로 방출하는 객체이다.
This post is licensed under CC BY 4.0 by the author.