我在Swift View Controller中有一个模型对象变量.我想做的事情是,在初始化VC时,我没有它的价值.但是在异步网络调用之后,我有解析的模型对象,这是该变量应该保存的,但从那时起,我不想要任何东西来改变模型变量的值.
在Swift中可以这样做吗?如果有,怎么样?
Een*_*dje 14
基于Babul Prabhakar的回答,但更干净一点.
方法1:
var test: String? { didSet { test = oldValue ?? test } }
test = "Initial string"
test = "Some other string"
test = "Lets try one last time"
print(test) // "Initial string"
Run Code Online (Sandbox Code Playgroud)
编辑:缩短时间
方法2:
let value: String
value = "Initial string"
Run Code Online (Sandbox Code Playgroud)
我想第二种方法是Swift的"内置"选项来声明一次变量.只有在声明之后立即分配变量时才可以这样做.
你能做的是
private var myPrivateVar:String?;
var publicGetter:String {
set {
if myPrivateVar == nil {
myPrivateVar = newValue;
}
}
get {
return myPrivateVar!;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3645 次 |
| 最近记录: |