이번에는 Observable을 생성할 때 사용할 수 있는 empty에 대해서 알아보도록 하겠습니다.
RxSwift를 사용하다 보면 아무것도 없는 그러니까 초기화 하고 싶으실 때가 있을 겁니다.
그런데 아래와 같이 일반적인 방식으로 초기화 하려고 하면
let emptyObservable: Observable = Observable<Any>()
⬇️ 아래와 같은 에러가 나게 됩니다.
'Observable<Element>' initializer is inaccessible due to 'internal' protection level
그럼 어떻게 초기화 하면 되느냐?
이때 사용하게 되는 것이 empty()
입니다.
바로 아래와 같이 empty()
를 이용해서 빈 Observable을 선언할 수 있습니다.
let emptyObservable: Observable = Observable<Any>.empty()
이런식으로 empty()
는 Observable을 초기화 시킬 때도 사용되지만
즉시 completed되는 Observable이나 element
가 0개인 Observable을 의도적으로 리턴하고 싶을 때에도 유용하게 사용될 수 있습니다!