swift4로 다른 타입의 observe를 정리해 rxswift로 merge한다

3802 단어 SwiftRxSwiftSwift4
오늘은 swift!

버튼을 탭했을 때의 이벤트라든지, UserDefaults의 정보가 갱신된 타이밍이라든지, home로부터 돌아온 타이밍이라든지… 라는 것이 있었으므로, 비망록도 겸해!

각각의 실행 결과를 인수로서 원하는 경우의 구현 예!



merge1.swift
let o1 = NotificationCenter.default
    .rx.notification(.UIApplicationDidBecomeActive)
    .map { $0 as AnyObject }

let o2 = UserDefaults.standard
    .rx.observe(String.self, "hoge")
    .map { $0 as AnyObject }

Observable.merge(o1, o2).subscribe(onNext: { arg in
    // イケてる処理を書こう!
})

AnyObject로 변환하여 오류가 발생하지 않도록합니다.

추기 실행 결과는 필요없는 경우의 실장 예!



merge2.swift
let o1 = NotificationCenter.default
    .rx.notification(.UIApplicationDidBecomeActive)
    .map { _ in }

let o2 = UserDefaults.standard
    .rx.observe(String.self, "hoge")
    .map { _ in }

Observable.merge(o1, o2).subscribe(onNext: { _ in
    // イケてる処理
})

처리가 간결하게되었습니다!

좋은 웹페이지 즐겨찾기