Как мне преобразовать Observable типа Int в переменную типа Int?
Вот что я пробовал до сих пор:
let obs: Observable<Int> = Observable.of(4)
let variable: Variable<Int> = obs
.flatMap { num in
return Variable<Int>(num)
}
Использование flatMap кажется наиболее логичнымОднако, выполняя преобразование, я получаю ошибку компилятора, которая, по сути, говорит, что ей не нравится flatMap, возвращающий что-либо, что не является наблюдаемым.Любые идеи?
РЕДАКТИРОВАТЬ:
Просто чтобы дать некоторый контекст о том, почему мне нужно преобразовать Observable в переменную:
Мне нужен мой viewModel для управления UIPickerView внутриViewController.В настоящее время у меня есть два открытых свойства в моей ViewModel, items: Observable <[String]> (который является источником данных для UIPickerView) и selectedIndex: Variable.SelectedIndex будет управлять начальным значением UIPickerView, но также будет отслеживать любые изменения, которые делает пользователь.
Причина, по которой мне нужно было преобразовать Observable в Variable, заключалась в том, что мне нужно было выяснить, какой индекс UIPickerViewдолжен быть выбран изначально:
items.map { days -> Int in
if let index = days.index(where: { str in
return str == selectedDay
}) {
return index
}
return 0
}
.flatMap { num in
return Variable<Int>(num)
}
Теперь мне интересно, не слишком ли я усложняю вещи, и если вместо переменной in у меня просто будет Observable.