Id is an instance of any class, not necessarily one that inherits from the NSObject class. Unlike Java's Object, NSObject isn't the "one true base class" from which every class inherits. So no, not all objects conform to the NSObject protocol, meaning the <NSObject> isn't redundant.