I am currently writing Swift 3 code in Xcode 8.
When using oldValue and newValue default parameters inside the willSet and
oldValue
newValue
willSet
The special variable newValue only works within willSet, while oldValue only works within didSet.
didSet
The property as referenced by its name (in this example vc) is still bound to the old value within willSet and is bound to the new value within didSet.
vc