gpt4 book ai didi

ios - RxSwift - 可观察的自定义类

转载 作者:可可西里 更新时间:2023-11-01 02:08:06 27 4
gpt4 key购买 nike

我正在创建一个自定义的通用 TableView 模型来使用 MVVM 和 RxSwift。我知道 RxTableViewSectionedReloadDataSource 类,但现在不愿意在我的项目中使用它。

模型已创建并运行

typealias TableViewModel = TableModel<CellDescriptor>

class TableModel<T> {

var sections = [SectionModel<T>]()

func add(item: SectionModel<T>) {
sections.append(item)
}

// More funcs there...
}

我在我的 ViewModel 中创建了一个实例:

var tableViewModel = Variable<TableViewModel>(TableViewModel())

然后在我的 viewController 中监听事件

viewModel.tableViewModel.asObservable().subscribe({ [weak self] value in
self?.tableView.reloadData()
}).addDisposableTo(dispose)

这里有几个问题(我对 FRP 还很陌生) :

  • 如何从我的自定义类“发出”一个事件来触发我在 viewController 中的订阅?我知道一个解决方案是将我的 sections 数组创建为 RxSwift Variable() 然后直接听它,但想知道是否有办法让类(或结构)本身可观察。

  • 有没有更好的方法来解决这个问题?我浏览了 RxSwift Playground 和示例项目,但听起来有上千种方法可以做同样的事情。也许 Observable 不是我想要的。 :)

最佳答案

不要让 View 模型本身成为一个Observable。这是不必要的复杂性,而且不直观。如果您真的想要,那么看看 Variable 是如何实现的,这应该会让您了解如何实现它。

相反,只需使用一个主题(例如 Variable)来保存 View 模型中的数据。

关于ios - RxSwift - 可观察的自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42002251/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com