iOS/RxSwift

iOS/RxSwift

[RxSwift] withUnretained에 대해 알아보자.

RxSwift의 'withUnretained' 연산자는 메모리 누수를 방지하기 위해 사용되는 연산자이다. 이는 강한 참조로 인해 발생할 수 있는 메모리 누수를 방지하기 위해 'self'에 대한 약한 참조를 사용하여 객체가 더 이상 필요하지 않으면 해제될 수 있도록 한다. 기본적으로 'withUnretained'는 'self'를 약하게 캡처하고, 'self'가 'nil'이 아닐 때에만 연산을 수행한다. 이를 통해 'self'에 대한 강한 참조를 방지하고 메모리 누수를 방지한다. weak selfprivate let label = UILabel()private let button = UIButton(type: .system)button.rx.tap .subscribe(onNext: { [weak sel..

iOS/RxSwift

[RxSwift] UILabel의 탭 이벤트를 감지해보자.

토이 프로젝트 진행 중, UILabel 컴포턴트를 Tap 했을 때 이벤트를 처리하고 싶었다.  제스처 인식let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleLabelTap(_:)))label.addGestureRecognizer(tapGestureRecognizer)label.isUserInteractionEnabled = true@objc func handleLabel(_ sender: UITapGestureRecognizer) { print("Label Tapped!")}UIKit으로 구현한 방법이다. UILabel에 TapGestureRecognizer를 추가한 후, 탭 이벤트를 처리하는..

iOS/RxSwift

[RxSwift] RxSwift와 RxCocoa로 Toggle Button 구현하기

UIKit으로 구현하기var isToggled: Bool = false // 버튼의 상태를 담고있는 변수private lazy var toggleButton: UIButton = { let button = UIButton() button.backgroundColor = .clear button.setTitle("Off", for: .normal) button.setTitleColor(.black, for: .normal) button.addTarget(self, action: #selector(toggleButtonTapped), for: .touchUpInside) return button}() // 버튼 생성@objc func toggleButtonTapped() { ..

iOS/RxSwift

[iOS/RxSwift] RxSwift 완벽 정리 - 2

Subject Subject는 Observable이자, Observer이다. 따라서, 하나 이상의 Observable을 Subscribe 할 수 있고, 동시에 Observable이기 때문에 item을 Emit할 수 있다. 🔥 Hot Observable : 구독 여부와 상관없이 이벤트를 Emit -> 구독하는 시점에 따라 방출되는 결과가 다르다. ❄️ Cold Observable : 구독 되어야만 이벤트를 Emit -> 어느 시점에 구독하든 같은 결과를 얻는다. ✅ Multicast Hot Observable = Subject = Multicast 하나의 Observable 실행이 여러 subscribe를 공유한다. 위의 출력 결과처럼, Subject는 Multicast이기 때문에 모두 동일한 출력 결과를..

여성일
'iOS/RxSwift' 카테고리의 글 목록