【发布时间】:2021-11-27 00:11:32
【问题描述】:
Swift 的新人。
我遇到了一个问题,即类中声明的字符串在我修改后不断恢复到其原始值。
class Calculation: ObservableObject {
var CalcString: String = "test"
func modifyCalcString(newData: String) {
CalcString = CalcString + newData
print(CalcString)
}
}
modifyCalcString 在应用视图中使用按钮调用
Calculation().modifyCalcString(newData: digit)
(数字是字符串)
我的问题是每次我调用 modifyCalcString 时都会对其进行修改,然后恢复为原始值。
例如,当使用 newData 为“5”调用 modifyCalString 时,函数内的打印语句将输出“test5”,但在再次打印后又恢复为“test”
我在这里迷路了,希望能得到帮助。
【问题讨论】:
-
hmm 是变异实例存储在任何地方,以便下次使用?
-
你应该将
CalcString设为私有。 -
另外值得注意的是:Swift 约定是专门为类型名称保留
UpperCamelCase。另外,calcString = calcString + newData可以写成calcString += newData -
Calculation()是Calculation.init()的缩写,表示您正在创建一个新的对象/实例。因此,如果您多次这样做,当然,您每次都会有一个初始字符串值为"test"的新对象。