首页 > 解决方案 > 如何通过转换 Swift 中可观察对象中包含的值来返回值?

问题描述

我对 Swift 和 iOS 很陌生,所以请多多包涵。我正在尝试设置一个可观察的计算属性。像这样的东西..

var mySection: Observable<DashboardSection>{

return Observable.just(

// unpack an "O1" observable and transform it, re-wrap it in different class 

}

我有一个 O1 observable 类型

let O1 : Observable<[Class1?]>

在计算属性中,我想从 O1 observable 中提取数组并对其进行一些计算,然后将其打包到不同的类中并返回它。

我有一段代码在此处使用多个源执行完全相同的操作Observable.combineLatest(o1,o2,o2, resultSelector),结果选择器可以执行此操作并返回值,但是我如何仅针对单个源执行此操作?

标签: iosswiftxcoderx-swift

解决方案


假设那是 RxSwift,根本不需要使用计算属性。如果仪表板逻辑将在整个对象生命周期内有效,通常您会使用.mapinit 像这样设置它:

import RxSwift

class SomeClass {
    let mySection: Observable<DashboardSection>

    init(o1: Observable<[Class1?]>) {
        mySection = o1.map { array in 
            //do the computations on array
            //return your DashboardSection value
        }
    }
}

推荐阅读