Что означает, что возможность наблюдения свойств доступна для переменных?

#swift

#swift

Вопрос:

В документации Swift (Свойства-Наблюдатели свойств / глобальные и локальные переменные) указано

Описанные выше возможности для вычисления и наблюдения свойств также доступны для глобальных переменных и локальных переменных.

Я понимаю, как использовать willSet и didSet в классах, но что означает вышесказанное в отношении глобальных и / или локальных переменных?


Обновление: это означает, что вы можете это сделать (если помните, что требуется явный тип):

 var someGlobalString: String = "abc" {
    willSet {
        println("someGlobalString changing from (someGlobalString) to (newValue)")
    }
    didSet {
        println("someGlobalString changed from (oldValue) to (someGlobalString)")
    }
}
someGlobalString = "qrs"
  

и посмотрите это в консоли:

 someGlobalString changing from abc to qrs
someGlobalString changed from abc to qrs
  

Я думаю, что это потрясающе.

Ответ №1:

это означает, что вы также можете использовать observer для локальных / глобальных переменных

 func test() {
    var totalSteps: Int = 0 {
        willSet(newTotalSteps) {
            println("About to set totalSteps to (newTotalSteps)")
        }
        didSet {
            if totalSteps > oldValue  {
                println("Added (totalSteps - oldValue) steps")
            }
        }
        }

        totalSteps  = 1
    }
test()
  

Комментарии:

1. Спасибо, я не использовал явный тип для своей переменной, и у меня не было проблем с so missed, почему я терпел неудачу (и, конечно, прибегнул к stackoverflow, прежде чем прикладывать много усилий :-)). Должен сказать, что я нахожу это приятной функцией.