In short, when the property value changing, I have to update some logic in my code, for example:
- (void)setProp:(NSString *)theProp { if (prop != theProp){
The first snippet is the way to go, if you’re interested in changes in the same object. You only need to use the second if you are interested in changes to other objects, using it to observe self is overkill.
self