티스토리 뷰

macOS, iOS

[RxSwift] Rx 처음 시작하기

SweetDev 2019. 7. 8. 14:11

1. 절차지향적인 코드

var sum=0
for i in 1...10{
    sum += 1
}
print(sum)

 

=> sum 상태가 저장되고 있었다!

 

함수지향적인 코드

print((1...10).reduce(0) { $0 + $1 })

//이렇게 도는건 reduce의 특징!

 

 

=> 따로 상태를 저장하지 않고, reduce 안에서 결과가 합쳐진다.

=> 변화되는 값이 없다.  

 

Rx = Reactive Extension

 -> 함수형 reactive programming

 -> Observable 스트림을 사용하는 비동기 프로그래밍 API

 -> 엑셀 같은 ?!

 

플레이그라운드에서 RxSwift 실습하기

pod try RxSwift

 

'비동기'

Observable == Sequence

ObservableType.subscribe(_:) == Sequence.makeIterator()

-> ObserverType parameter 받고, 

 

Observable 항상 subscriber 필요. 

 

위에거는 subscriber 없어서 실행이 안될거고, 밑에거는 될거다

 

subscribe(_: ) 함수는 Disposable 인스턴스를 리턴하는데, 주로 DisposableBag 인스턴스에 더해주게 된다. 

 

====

 

Observable sequence 만들고 subscribe 하는 여러가지 방법이 있다. 

1. never

 - 절대 종료되지 않고, 어떠한 event emit 하지 않는다. 

2. empty

 - 

3. just

 - 하나의 원소로 Observable Sequence 만들기

4. of 

 - 고정된 갯수의 원소로 Observable Sequence 만들기

5. from

6. create

7. range

8. repeatElement

9. generate

10. deferred

11. error

12. doOn

 

called Observable : 누군가 자신을 구독해야, lazy evaluation? 해서, event 발생 가능해진다.

 

Observable Stream 

 

zip 

 

case .next

case .error

case .completed

 

내일 공부할

1. sorted 함수 보기

(by : {$0. tag < $1. tag }) ??

달러표시의 의미 ??

 

태그는 0부터 9까지 달려있음. 

 

2. foreach 쓰는법

let numberWords = ["1", "2", "3"]

for word in numberWords {

    print(word)

}

numberWords.forEach { word in

    print(word)

}

 

예제에서는 

.forEach({$0.maximum = 1})

 

-> loop 돌아서 모든 field maximum 1 바꿔준다

 

 

'macOS, iOS' 카테고리의 다른 글

일급객체란?  (0) 2019.07.09
Equatable  (0) 2019.07.08
[swift] Generics(제너릭스, T)  (0) 2019.07.08
Xcode 단축키들  (0) 2019.07.05
[Swift] Closure - $0, escaping, autoclosure  (0) 2019.07.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함