D. Runtimes, Old and New

Apple provides two different versions of the Objective-C runtime: “legacy” and “modern.” The legacy version is used for 32-bit OS X programs and the modern version is used for iPhone applications and 64-bit applications running on OS X 10.5 or later. As of this writing (January 2010), the name “legacy” is slightly premature: The majority of existing desktop Mac applications are 32-bit programs.

From a programmer’s point of view, the primary difference between the two runtimes is how they store an object’s instance variables. The legacy runtime stores instance variables in what amounts to a C structure, and references instance variables by their offsets into the structure. The modern runtime uses a different scheme and ...

Get Learning Objective-C 2.0: A Hands-On Guide to Objective-C for Mac and iOS Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.