전체 글 (11) 썸네일형 리스트형 [RxSwift] `UITextField.rx.text` 프로퍼티의 '예상치 못한 요소 방출' 이슈 문제: textField.rx.text.orEmpty.asDriver() .drive(with: self) { owner, text in print("text") } .disposed(by: disposeBag) 그림 1. `text` controlProperty 구독 예시 그림 1 처럼 `UITextField` 의 `text` controlProperty 를 구독한 상황에서 현재 화면이 dismiss 될때 구독 클로저가 한 번 더 실행되는 것 같은 현상이 발생. 해결과정: 문제의 구독과 연관 있는 다른 구독을 살펴보며 원인 파악 -> 아무리 봐도 문제가 없음(원인을 모르겠음) 여기저기 `debug()` operator 를 사용해가며 문제 원인 파악 -> 구독 문제가 아니라 `text` controlPr.. RxSwift.Single 구현에서의 `stopped` 변수의 의미 - RxSwift 6.6.0 기준으로 작성된 글입니다. RxSwift 구현을 살펴보던 도중 이해하기 힘들었던 로직에대한 기록. 문제: /** Subscribes `observer` to receive events for this sequence. - returns: Subscription for `observer` that can be used to cancel production of sequence elements and free resources. */ public func subscribe(_ observer: @escaping (SingleEvent) -> Void) -> Disposable { var stopped = false return self.primitiveSequence.asObse.. Test Double 특징 다음과 같이 구조체와 프로토콜이 존재할 때, struct Post { let id: UUID let title: String } protocol PostRepositoryProtocol { var postCount: Int { get } func savePost(_ post: Post) throws -> Bool func getPost(by id: UUID) throws -> Post } Dummy - 매개변수 목록을 채우기 위한 빈 객체 - 사용되지 않을것이므로 프로토콜 요구 사항만 충족 final class PostRepositoryDummy: PostRepositoryProtocol { var postCount: Int = 0 // 사용되지 않음 // 호출되지 않음 func savePost(_ po.. 이전 1 2 다음