小编Man*_*nny的帖子

RxSwift正确使用变量

我正在尝试将项目转换为使用RxSwift和MVVM.我有一个服务,在每个应用程序启动时同步来自Parse的数据列表,我基本上想确保我采取正确的方法.

我所做的是成为一个可变主题,然后允许我的模型听这个.ParseService:

let rx_parseMushrooms = Variable<[ParseMushroom]>([])
Run Code Online (Sandbox Code Playgroud)

MushroomLibraryModel:

_ = parseService.rx_parseMushrooms
    .asObservable()
    .map { (parseMushrooms:[ParseMushroom]) -> [Mushroom] in
        let mushrooms = parseMushrooms.map { (parseMushroom:ParseMushroom) -> Mushroom in
            let mushroom = Mapper<Mushroom>().map(parseMushroom.dictionaryWithValuesForKeys(parseMushroom.allKeys()))
            return mushroom!
        }

        return mushrooms
    }
    .subscribeNext({ (mushrooms:[Mushroom]) -> Void in
        self.mushrooms = mushrooms
        print(mushrooms)
    })
Run Code Online (Sandbox Code Playgroud)

我也是这样表达同步状态的.

ParseService:

struct SyncState {
    enum State {
        case Unsynced, ConnectingToServer, SyncingInfo, FetchingImageList, SyncingImages, SyncComplete, SyncCompleteWithError
    }

    var infoToSync = 0
    var imagesToSync = 0
    var imagesSynced = 0

    var state = State.Unsynced
} …
Run Code Online (Sandbox Code Playgroud)

architecture mvvm swift rx-swift

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

architecture ×1

mvvm ×1

rx-swift ×1

swift ×1