"OldValue" и "newValue" имена параметров по умолчанию внутри willSet / didSet непризнанные

В настоящее время я пишу код Swift 3 в Xcode 8.

При использовании параметров oldValue и newValue умолчанию в willSet и didSet я получаю ошибку компилятора "unresolved identifier" .

У меня очень простой код, как показано ниже.

  var vc:UIViewController? { willSet { print("Old value is \(oldValue)") } didSet(viewController) { print("New value is \(newValue)") } } 

Apple Documentation для Swift 3 все еще, похоже, поддерживает эту функцию. Надеюсь, что здесь ничего не пропало?

  • Swift 3 - Отрегулируйте размер шрифта, чтобы установить ширину, несколько строк
  • Как открыть локальный файл html на Safari?
  • Скрыть панель навигации в определенном представлении - Swift 3
  • Spotify SDK Отсутствует услуга обновления токена?
  • Внедрение массива NSPsistentStoreResult в массив
  • Как прокрутить контроллер View поверх другого контроллера?
  • Невозможно преобразовать значение типа '() -> Void' в ожидаемый тип аргумента '(() -> Void)?'
  • Swift 4 - Невозможно присвоить значение типа «NSDate» для ввода «Date?» ТОЛЬКО на физическом устройстве
  • 3 Solutions collect form web for “"OldValue" и "newValue" имена параметров по умолчанию внутри willSet / didSet непризнанные”

    Вы также можете использовать vc :

     var vc:UIViewController? { willSet { print("New value is \(newValue) and old is \(vc)") } didSet { print("Old value is \(oldValue) and new is \(vc)") } } 
     var vc:UIViewController? { willSet { print("New value is \(newValue)") } didSet { print("Old value is \(oldValue)") } } 

    Из ответа Dmytro я смог вывести, newValue работает внутри willSet а oldValue работает для блока didSet если нет настраиваемых параметров.

     var vc:UIViewController? { willSet { print("New value is \(newValue)") } didSet { print("Old value is \(oldValue)") } } 
    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.