Objective-C Runtime
The dynamic heart of Objective-C: objects, classes and messages, resolved while your app runs.
Overview
The Objective-C Runtime is the library that makes Objective-C dynamic. Every method call is a message the runtime delivers while your app runs, looking up the right implementation at that moment. That's what lets you add methods, swap implementations and inspect classes on the fly.
It also defines NSObject, the root of most Cocoa classes. You rarely need to call it directly today, but it's still underneath UIKit and AppKit, and Swift uses it whenever you mark code with @objc.
Message sending
Every method call is a message, matched to its code at run time.
NSObject
The root class that gives objects their basic runtime behavior.
Method swizzling
Swap or add method implementations while the app is running.
Introspection
Ask any class for its methods, properties and protocols.
History
How it grew up.
Objective-C is born
Brad Cox and Tom Love add Smalltalk-style messaging to C.
NeXTSTEP
NeXT adopts Objective-C for its operating system and frameworks.
Mac OS X and Cocoa
The runtime ships at the core of Mac OS X, under every Cocoa app.
Objective-C 2.0
Properties, fast enumeration and a modernized runtime arrive with Mac OS X Leopard.
Automatic Reference Counting
The compiler takes over retain and release.
Swift arrives
Swift works with Objective-C code through the same runtime.