There are different problems with your code. First of all, Key-Value Observing is a mechanism to observe properties of an object. It does not work with instance variables. So you should declare "stepsCompleted" as a property of the application delegate instead of an instance variable:
@property (nonatomic) int stepsCompleted;
and set its value through the property accessor methods, e.g.
[AppDelegate instance].stepsCompleted = newValue;
Next, "[AppDelegate instance]->c"
is not a key path, and you have to specify at least one observing option, e.g. NSKeyValueObservingOptionNew
.
To observe the "stepsCompleted" property of [AppDelegate instance]
, it should be
[[AppDelegate instance] addObserver:self
forKeyPath:@"stepsCompleted"
options:NSKeyValueObservingOptionNew
context:NULL];