В настоящее время я работаю над проектом, требующим рефакторинга RxSwift
зависимостей для введения PromiseKit
.
Я не очень знаком с RxSwift
или PromiseKit
, поэтому, пожалуйста, прости меня, если это очевидно.
Я ищу способ обработки сценария использования Zip до сих пор
override func start() -> Observable<CoordinationResult> {
let tabBarController = UITabBarController()
let tabs: [SectionTab] = [.feed]
let coordinationResults = Observable.from(configure(tabBarController: tabBarController, withTabs: tabs)).merge()
window.rootViewController = tabBarController
window.makeKeyAndVisible()
return coordinationResults
.take(1)
}
private func configure(tabBarController: UITabBarController, withTabs tabs: [SectionTab]) -> [Observable<Void>] {
let navControllers = tabs
.map { tab -> UINavigationController in
let navController = BaseNavigationController()
navController.tabBarItem = UITabBarItem(title: tab.title, image: nil, selectedImage: nil)
return navController
}
tabBarController.viewControllers = navControllers
tabBarController.view.backgroundColor = UIColor.white // Fix dark shadow in nav bar on segue
return zip(tabs, navControllers)
.map { (tab, navController) in
switch tab {
case .feed:
let coordinator = FeedCoordinator(navigationController: navController, dependencies: dependencies)
return coordinate(to: coordinator)
}
}
}
Из того, что я понимаю, Zip
объединяет 2 наблюдаемые и позволяет вам воздействовать на них, испуская одну наблюдаемую, которая, по сути, является результатом двух исходных наблюдаемых и вашего действия.