Objective-C is a highly dynamic, message-based object-oriented language. Consisting of a small number of additions to ANSI C, Objective-C is characterized by its deferral of many decisions until runtime, supporting its key features of dynamic dispatch, dynamic typing, and dynamic loading. These features support many of the design patterns Cocoa uses, including delegation, notification, and Model-View-Controller (MVC). Because it is an extension of C, existing C code and libraries, including those based on C++, can work with Cocoa-based applications without losing any of the effort that went into their original development.
This chapter is an overview of Objective-C’s most frequently used features. If you need more detail about these features or want to see the full language specification, read through Apple’s document, The Objective-C Programming Language, which is installed as part of the Developer Tools in /Developer/Documentation/Cocoa/ObjectiveC.
 For more information on using C++ with Objective-C, see the Objective-C++ documentation contained in /Developer/Documentation/ReleaseNotes/Objective-C++.html.