I don't think I had fully understood what the id pointer declaration in Objective-C (and used everywhere in Cocoa) was until I read on the Unixjunkie's blog an article called id vs NSObject* vs id<NSObject>. If you are trying to become a Cocoa and Objective-C development rock star, required reading.