iOS/iOS SeSAC 2기 TIL

iOS Rxswift Subject

Developer-Michelle 2022. 10. 25. 10:58

iOS Rxswift Subject

 

Subject란? Observable 및 Observer 의 기능을 같이 하는 것

(구독subscribe도하고, 값도 전달이 가능)

 

Subject : 2가지 기능 = subscribe, next

 

Subject에는 4가지가 있다

1) publish

2) behavior

3) replay

4) async (거의 안씀)

 

따라서 위의 1,2,3을 제대로 공부할 것

 

1) vs 2) 초기값의 유무

 

1) publish - 초기값 X

 

2) behavior

: 초기값이 필수. 구독 전에 가장 최근 값을 같이 emit.

ex) placeholder, 테이블뷰 초기값 등

 

3) replay

let replay = ReplaySubject<Int>.create(bufferSize: 3)

//bufferSize에 작성된 이벤트 개수만큼 메모리에서 이벤트를 가지고 있다가, subscribe 직후 한 번에 이벤트를 전달

//다람쥐가 입에 3개 물고 있다가 한꺼번에 뱉어낸다... ㅋㅋ

 

 

buffersize가 3개라서 위에 300, 400, 500이 출력됨

만약 buffersize가 5개라면, 100, 200, 300, 400, 500이 출력됨

 

ex) 쇼핑몰에서 최근 본 상품 5개 뜨게 하는거

 

// Buffersize 메모리, array, 이미지 주의 (만약 Buffersize가 1000개라면?)

 

 

4) async

complete 이벤트 전의 가장 최근 것만 전달이 됨.

최후의 한마디만 함 ㅋㅋ

만약 complete하지 않으면 실행 안됨.

'iOS > iOS SeSAC 2기 TIL' 카테고리의 다른 글

[SLP 개발일지] 공개용  (0) 2022.11.08
화면전환 코드 깔끔하게  (0) 2022.11.02
[포스트모템] 앱 출시 후 회고  (0) 2022.10.04
iOS swift TabBar background  (0) 2022.09.30
iOS swift navigation title font size change  (0) 2022.09.28