1

我有一些TextField(s)“.text”值应该由“<strong>init()”(可以移动)中调用的方法填充,该方法使用struct来自网络的数据异步调用完成处理程序。

问题是......同时用户也可以开始手动输入它们,并且完成回调不应该覆盖手动编辑的值

我不确定如何:

  1. @State String仅当用户尚未修改变量的值以替换现有值时才更新它们的值......同时让最终用户可以更改它们。
  2. @State一次更新来自同一请求的N 个值。一个请求用于拉入所有数据,因此映射到单个值同时使其如上所述是可变的目前是一个令人头疼的问题。

这似乎是 Combine 的工作,只是还不确定从哪里开始。

4

1 回答 1

0

我假设用户编辑是每个字段,所有其他字段都应该单独保留。

移动 a 中的所有状态ObservableObject,使状态变量@Published,从每个发布者中获取一个发布者,并从每个发布者中创建一个接收器,在每个接收器中设置一个变量,并在ObservableObjectif stateX != initialStateXValue { stateXUserModified = true }上有一个方法networkUpdate(loadedData:) ,该方法仅在关联的情况下设置状态stateXUserModified为假。

于 2019-08-20T07:25:33.830 回答