It's also very handy when you have protocols that have @optional methods (e.g. "modern" Objective-C 2.0 delegates often use this technique) If you don't include the NSObject protocol, you'll get warnings when you try to call respondsToSelector: on the object.