Here are the key points about classes and metaclasses in Objective-C: - Every Objective-C class is an instance of another class called its metaclass. The metaclass allows the class to receive and respond to messages. - The root class is called Class. All other classes are subclasses of Class. - When you send a message to a class like [MyClass foo], it is actually sending the message to the metaclass of MyClass, not to MyClass itself. The metaclass handles class methods and behaviors. - The isa pointer in the class structure points to the metaclass, not the superclass. This allows classes to behave like objects and receive messages. - So in summary, classes are objects (instances