Rxswift에서 많이 나오는 단어들을 정리해봤어요.

3824 단어 SwiftiOS
이제 막 RxSwift를 사용하기 시작했는데 여러 가지 용어가 있는데 제가 직접 정리해 봤어요.
모두 귀납하면, 양이 많기 때문에, 나는 개인적으로 자주 보는 단어를 쓴다!

RxSwift 소개


Rx는 Reactive Extensions의 약자로 비동기적 처리와 이벤트 처리 등을 선언적으로 기술할 수 있는 프로그램 라이브러리다.그 Rx를 스위프트 버전으로 발표한 게 Rxswift야.스위프트 외에도 다양한 언어가 준비돼 있다.사이트 축소판 그림
또 FRP(Functional Reactive Programing) 중 하나로 FRP의 예로 코드로 표시한다면 다음과 같다.
a = 1
b = 2
c = a + b
a = 2
print(c)
//3ではない
// 出力は4になる
이것은 선언적으로'a+b'의 관계를 기술함으로써 당시의'a+b'가 아닌 결과의 값으로 선포했기 때문에 이후에 변경된 값으로 계산한다.

[Swift] RxSwift 이해.
이미지상 엑셀 같은 동작은 이해하기 쉽다.
a 또는 b의 값 변화를 감시하고 변화가 발생하면 c처리를 실행하는 이미지를 터치하는 것이 FRP의 예이다.

RxSwift의 특징


장점


• 코드가 전체적으로 일치
• 간결하게 글을 쓸 수 있고 비동기적으로 처리할 수 있다
/호출 횟수 감소

결점


• 학습 원가가 높다
• 상황에 따라 코드량이 많다

자주 나오는 단어를 정리해 봤어요.


Observalble


이름은'감시 가능'이지만 사건 등을 감지하기 위한 학급이다.
다음 3가지 활동을 공지합니다.
활동이 발생하면 안 됩니다.
타입
설명
onNext
일반적인 이벤트에 공지합니다.여러 번 발송 가능합니다.
onError
오류가 발생했음을 알립니다.한 번만 부르고 끝났어.
onCompleted
완료 통지.그때 끝내.

subscribe(구독)


subscribe는 onNext 등의 사용을 알리는 방법입니다.subscribe를 작성하면 Observable에 구독할 수 있으며, 이벤트가 발생할 때마다subscribe에서 onNext의 처리를 실행합니다.번거롭지만 그 처리는 Observer라고 해서 Observalble와 틀리기 쉽다.
사용 방법은 다음과 같다.
let disposeBag = DisposeBag() //下に説明あり
let observable textField.rx.tap.asObservable()

let observable = Observable.of("1","2","3")
_ = observable
.subscribe(onNext: {
  print($0))
}, onError: { _ in
  print("error")
}, onCompleted: {
  print("終了")
}).disposed(by: disposeBag)

disposebag


subscribe(onNext 등)를 하면 언제까지 해제되지 않아 기억 유출 등을 일으킬 수 있다.
따라서 디스커버리에 로그인하면 이 벽장을 떠날 때 디스커버리가 열리기 때문에 그 시기에 구독 처리가 해제됩니다.
구독했다면 이 문제를 풀기 위해 해제(disposeBag)라고 적으면 아마 틀리지 않을 거예요.

subject 


Subject에는 Observable과 Observer 두 가지 기능이 있습니다.
subscrive가 구독할 수 있는 Observable 기능을 하면 onNext 등 이벤트가 발생할 수 있습니다.
대표적인subject 세 개를 소개합니다.
카테고리
설명
PublishSubject
subscribe 이후의 이벤트만 재생하고 과거 값도 재생하지 않습니다
BehaviorSubject
subscribe일 때 과거의 이벤트를 받아들일 수 있습니다. (최초subscribe일 때 초기값입니다.)
ReplaySubject
Subject는 subscribe에서 지정한 bufferSize 부분의 과거 이벤트를 받아들일 수 있습니다.
참조하게 해주세요!
https://qiita.com/KentaKudo/items/4d7154c3dada93f11492

Relay


오류를 재생하지 않고 comple의subject를 재생하지 않습니다.Next 스트림만 허용됩니다.
PublishRelay는 PublishSubject의 wrapper입니다.
BehaviorRelay는 BehaviorSubject의 wrapper입니다.

operator


이벤트를 가공하는 방법은operator(조작원)라고 합니다.
이벤트의 각 요소를 다른 요소로 바꾸는 맵과 지정된 조건만 통해 진짜 이벤트로 바꾸는 필터 등이 자주 사용된다.
operator는 여러 종류가 있는데 아래 사이트에서 총결산할 수 있습니다!
RxSwift 기능 카탈로그

좋은 웹페이지 즐겨찾기