我目前正在Xcode 8中编写Swift 3代码.
当在和块中使用oldValue
和newValue
默认参数时,我收到编译器错误.willSet
didSet
"unresolved identifier"
我有一个非常基本的代码如下
var vc:UIViewController? {
willSet {
print("Old value is \(oldValue)")
}
didSet(viewController) {
print("New value is \(newValue)")
}
}
Run Code Online (Sandbox Code Playgroud)
Swift 3的Apple文档似乎仍然支持这些功能.我希望我在这里不遗漏任何东西?
Fra*_*kel 50
您还可以使用vc
:
var vc:UIViewController? {
willSet {
print("New value is \(newValue) and old is \(vc)")
}
didSet {
print("Old value is \(oldValue) and new is \(vc)")
}
}
Run Code Online (Sandbox Code Playgroud)
Rob*_*art 26
特殊变量newValue
只能在其中工作willSet
,而oldValue
只能在其中工作didSet
.
其名称引用的属性(在此示例中vc
)仍然绑定到其中的旧值,willSet
并绑定到其中的新值didSet
.
Dmy*_*sov 13
var vc:UIViewController? {
willSet {
print("New value is \(newValue)")
}
didSet {
print("Old value is \(oldValue)")
}
}
Run Code Online (Sandbox Code Playgroud)
Wis*_*ssa 10
重要的是要知道特殊变量newValue
仅适用于willSet
,而oldValue
仅适用于didSet
。
var vc: UIViewController? {
willSet {
// Here you can use vc as the old value since it's not changed yet
print("New value is \(newValue)")
}
didSet {
// Here you can use vc as the new value since it's already DID set
print("Old value is \(oldValue)")
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23902 次 |
最近记录: |