티스토리 뷰

Mobile/iOS

RxSwift의 take operators

out of coding 2018. 6. 11. 12:25

take 시리즈는 어떠한 조건에 대해서만 값을 전달받겠다는 것으로, 조건에 맞는 값들이 들어오면 통과되고 조건이 맞지 않게 되면 이후의 값들을 받지 않습니다.


1. take(_:)


처음부터 발생하는 n개의 이벤트만을 받고 나머지는 무시하게 되는 operator


2. takeWhile(_:)


filter와 거의 흡사한 부분이 있는 operator로 조건에 맞는 이벤트는 통과를 하게 됩니다.

그러나 조건에 맞지 않는 이벤트를 만나게 되면 이후 이벤트도 모두 무시하게 됩니다.


3. takwUntil(_:)


위의 takeWhile은 조건을 사용하였다고 한다면, 하나의 trigger 흐름이 더 필요한 operator입니다.

그래서 trigger 흐름이 발생하게 되면 이후의 조건들이 다 동작을 안하게 됩니다.

trigger 흐름이 발생하기 전까지만 원래의 흐름은 동작하게 됩니다.


이것으로 deallocated를 이용하면 다음과 같아집니다.


1
2
3
4
5
original
    .takeUntil(self.rx.deallocated)
    .subscribe(onNext: {
        // brabra
    })
cs


class인 self가 deallocated 되면 이후에는 아무것도 받지 않게 됩니다.

'Mobile > iOS' 카테고리의 다른 글

RxSwift DisposeBag  (0) 2018.06.13
RxSwift distinct operator  (0) 2018.06.11
iOS Carthage 기본  (0) 2018.06.10
CocoaPod 사용하는 라이브러리들의 버전 확인  (0) 2018.06.10
UIScrollView에 contentOffset이 적용될때  (0) 2018.05.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함