withUnretained?
withUnretained 연산자는 클로저 내에서 self를 약한 참조로 사용할 수 있도록 도와준다.
- **
[weak self]**를 사용하는 대신 **withUnretained**를 사용하여 self를 클로저 내에서 참조
- **
withUnretained**는 self를 클로저의 첫 번째 인자로 전달해주기 때문에 클로저의 파라미터에 **(weakSelf, text)**와 같이 self를 포함하여 처리
withUnretained 메서드는 **Observable**과 Driver 타입에만 사용할 수 있다. Single 타입은 스트림의 단일 이벤트를 나타내는데, **Observable**과는 조금 다른 목적
input.tapConfirmButton
.withUnretained(self)
.emit { owner, _ in
owner.editUserNicknameAPI(userId: 13, nickname: output.nickname.value)
}
.disposed(by: disposeBag)