类内声明的字符串不断恢复为原始值
Posted
技术标签:
【中文标题】类内声明的字符串不断恢复为原始值【英文标题】:Declared string inside class keeps reverting to original value 【发布时间】: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"
的新对象。
【参考方案1】:
唯一的原因是您不是每次都使用同一个类实例。
【讨论】:
是的,我一遍又一遍地初始化类。谢谢!以上是关于类内声明的字符串不断恢复为原始值的主要内容,如果未能解决你的问题,请参考以下文章