首页 > 解决方案 > RxSwift - 在事件中更改 PublishSubject 中的特定对象

问题描述

struct Contact : Codable, Hashable {
    var id : String
...
}

我用来PublishSubject将数据提供给UITableView

let contacts : PublishSubject<[Contact]> = PublishSubject()

而当另一个视图控制器上的值发生变化时,我想更改数组中的特定值。

我想更改Contact具有特定 ID 的对象。

contacts.filter {$0.id == contactId}[0].someKey = someValue

我怎样才能用 RxSwift 做到这一点?

标签: swiftrx-swiftreactive

解决方案


了解 PublishSubject 不包含任何状态,因此您无法更改其中的任何内容。相反,您从发布主题发出一个新数组,其中包含一个具有新值的新联系人。

在您的代码中的某个地方,您正在调用onNext(_:)该主题(或将其连接到正在执行此操作的 Observable。我们需要查看该代码以帮助您解决问题。


推荐阅读