RxSwift시작하기1-6

작성일

배열 사용하기

개인적으론 이게 제일 중요하다고 생각한다. 우리의 IOS앱들의 거의다 배열을 사용하기 때문이다.
살펴보면

1번쨰

let disposeBag = DisposeBag()

let variable = BehaviorRelay(value: [String]())

variable.accept(["item 1", "item 2"])

variable.asObservable()
    .subscribe {
        print($0)
}

이렇게 빈 배열을 생성한후, .accept로 배열을 바꿔버린후, 그걸 출력한 한다.

next(["item 1", "item 2"])

가 나오는걸 볼 수 있다.

2번째

배열 추가하기

import UIKit
import RxCocoa
import RxSwift

let disposeBag = DisposeBag()

let variable = BehaviorRelay(value: [String]())

variable.accept(["item 1", "item 2"])

variable.asObservable()
    .subscribe {
        print($0)
}

variable.accept(variable.value + ["item 3"])

배열을 추가하고싶으면 이렇게 variable.value 값으로 접근하고 값을 추가하면 된다.
출력값은

next(["item 1", "item 2"])
next(["item 1", "item 2", "item 3"])

이렇게 추가하기 전과 추가한 후 2번 출력이 된다.

3번쨰

아마 제일 많이 사용할 거 같긴한데,

import UIKit
import RxCocoa
import RxSwift

let disposeBag = DisposeBag()

let relay = BehaviorRelay(value: ["Item 1"])

var value = relay.value
value.append("Item 2")
value.append("Item 3")

relay.accept(value)

relay.asObservable()
    .subscribe {
        print($0)
}

이런식으로 .append로 값을 추가한후, .accept으로 그값으로 바꾸고 구독하여 살펴보면

next(["Item 1", "Item 2", "Item 3"])

이런식으로 한번만 출력이 가능하다.