The Objective-C language defers as many decisions as it can from compile time and link time to runtime. Whenever possible, it does things dynamically. This means that the language requires not just a compiler, but also a runtime system to execute the compiled code. The runtime system acts as a kind of operating system for the Objective-C language; it’s what makes the language work.
The following sections look in particular at three areas where the NSObject class provides a framework and defines conventions:
Allocating and initializing new instances of a class, and deallocating instances when they’re no longer needed
Forwarding messages to another object
Dynamically loading new modules into a running program
Additional conventions of the NSObject class are described in the NSObject class specification in the Foundation framework reference.
Other sections look at how you interact with the runtime at an abstract level; how you can use the Distributed Objects system for sending messages between objects in different address spaces; and how the compiler encodes the return and argument types for each method.
Interacting with the Runtime System
Allocating and Initializing Objects
Memory Management
Forwarding
Dynamic Method Resolution
Dynamic Loading
Remote Messaging
Type Encodings
Last updated: 2008-02-05