Swift 页面之间共享数据模型通信。怎么运行的

Swift share data model communicate between page. how it works

我有一个问题。我有一个从 Class A 传递给 Class B 的数据模型。我希望 Class B 从 Class A 检索更改的值。他们都可以编辑和共享相同的数据。但是,现在 Class B 无法从 Class A 获取任何值。我怎样才能做到

struct DataModel {
  var firstName: String = ""
  var lastName: String = ""
}
class ClassA {

 var dataModel: DataModel

  
  ClassB(dataModel: dataModel)
  dataModel.firstName = "ABC"
}
class ClassB {
   var dataModel: DataModel

   init(dataModel: dataModel) {
     self.dataModel = dataModel

     dataModel.firstName <--- Print Null
  }
}

当您将 A.dataModel 传递给 B 时,由于 struct 是值类型,因此传递给 B 的是 dataModel 的副本,而不是原始实例。

因此,如果您想在 A 和 B

中修改 A.dataModel,则只需使用 class 作为数据模态而不是结构

换句话说,您需要将 A.dataModel 的引用传递给 B

class DataModel {
    var firstName: String = ""
    var lastName: String = ""
}