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)