【问题标题】: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" 的新对象。

标签: ios swift xcode


【解决方案1】:

唯一的原因是您不是每次都使用同一个类实例。

【讨论】:

  • 是的,我一遍又一遍地初始化类。谢谢!
猜你喜欢
  • 2016-10-26
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
相关资源
最近更新 更多