我正在开发一个iOS应用程序,并有以下数据模型:
struct Student {
var name: String?
var age: UInt?
var hobbies: String?
...
}该模型用作一个视图控制器中的数据源,其中每个属性值将被填充在一个UITextfield实例中,以便用户可以编辑学生的信息。每当用户完成输入某一项(例如名称)时,新值将覆盖旧模型的相应属性。
问题是,由于struct是值类型而不是引用类型,所以每次向它分配新的属性值时都会生成一个新的模型实例。在我的模型中可能有超过20个属性,我认为这么多副本是相当浪费的。出于某些原因,我不允许使用类。有什么方法可以优化这个吗?这些副本会不会导致任何性能问题?
发布于 2021-12-08 18:21:47
您可以创建一个具有可变关键字的func,如下所示
struct Point {
var x = 0.0
mutating func add(_ t: Double){
x += t
}
}找到更多的here
https://stackoverflow.com/questions/70277399
复制相似问题