swift4で異なる型のobserveをまとめてrxswiftでmergeする
今日はswift!
ボタンをタップされた時のイベントとか、UserDefaultsの情報が更新されたタイミングだとか、homeから戻ってきたタイミングだとか……そういう諸々のイベントが発生した時にobserveの入り口を一つにして処理させたいということがあったので、備忘録も兼ねて!
それぞれの実行結果を引数として欲しい場合の実装例!
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
// イケてる処理を書こう!
})
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
// イケてる処理
})
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
// イケてる処理
})
処理が簡潔になりました!
Author And Source
この問題について(swift4で異なる型のobserveをまとめてrxswiftでmergeする), 我々は、より多くの情報をここで見つけました https://qiita.com/fumihiko-hidaka/items/fba2fac460cf347c1aba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .