It depends on what options were used when adding an observer. If the observer was added using NSKeyValueObservingOptionPrior, then it -observeValueForKeyPath:...is called both before and after the property change. Or, more precisely, it was called both during -willChange...and during the methods -didChange....
NSKeyValueObservingOptionPrior , -observeValueForKeyPath:... . ( -didChange....)
Swift KVO. , ( ) - / , ( ).
, KVO , . , - , .