In the book you give an example of using dealloc as an appropriate place to execute the removeObserver method. However, it seems that dealloc may not always be called as expected, depending on how things are released. I have seen where dealloc isn’t called, and the Mac forums have many posts with people complaining that dealloc is not being called. There are also discussions specifically concerning the appropriateness of using dealloc as the place the remove yourself from observations.

Do you have any thoughts on when it may or may not be a good idea to remove observations in dealloc?