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 = ""
}
我有一个问题。我有一个从 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 = ""
}