I am currently writing Swift 3 code in Xcode 8.
When using oldValue
and newValue
default parameters inside the willSet
and didSet
blocks, I am getting "unresolved identifier"
compiler error.
I have a very basic code as below
var vc:UIViewController? { willSet { print("Old value is \(oldValue)") } didSet(viewController) { print("New value is \(newValue)") } }
Apple Documentation for Swift 3 still seems to support these feature. I hope I am not missing anything here?
In willSet Swift provides your code with a special value called newValue that contains what the new property value is going to be, and in didSet you are given oldValue to represent the previous value.
didSet is called right after the data is stored and it has a default constant oldValue which shows the previous value that is overwritten.
You can also use vc
:
var vc:UIViewController? { willSet { print("New value is \(newValue) and old is \(vc)") } didSet { print("Old value is \(oldValue) and new is \(vc)") } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With