我想在我创建的swift文件中更改var的值:
class functions {
var DataSent = "Sensor"
func setValue (DataSent: String) {
self.DataSent = DataSent
}
func getValue () -> String {
return self.DataSent
}
}
当我调用setValue时,DataSent没有改变我能做什么?
我称之为:functions().setValue(stringData)
然后我用getValue
将其调用到另一个类答案 0 :(得分:4)
每次致电functions
时,您都会创建functions()
的新实例。在这种情况下,最好使用struct
static
函数和静态变量。
struct functions {
static var DataSent = "Sensor"
static func setValue (DataSent: String) {
self.DataSent = DataSent
}
static func getValue () -> String {
return self.DataSent
}
}
print(functions.DataSent)
functions.setValue(DataSent: "Blaah")
print(functions.DataSent)
答案 1 :(得分:0)
我真的没有意识到为全局可变属性编写getter和setter方法的重点。但是,可能更好的选择是将getter和setter写为计算属性。
这看起来像这样:
class functions {
private var _DataSent = "Sensor"
var DataSent: String {
get {
return _DataSent
}
set {
_DataSent = newValue //newValue is an apple keyword and represents the value, you want to assign to your property.
}
}
希望这有帮助, 欢呼声