Objective-C Feature Availability Index

This article correlates features of the Objective-C language with the versions of Xcode and compiler you need to use them, and the OS versions you can use them with.

For more information about these modern Objective-C features, see Programming with Objective-C.

Feature

Tools versions

OS X deployment

iOS deployment

Automatic Reference Counting (ARC)

Xcode 4.2

(LLVM Compiler 3.0)

Using modern runtime: Deploys back to OS X v10.7

Using legacy runtime: Deploys back to OS X v10.12

Deploys back to iOS 5

Automatic Reference Counting without zeroing weak reference (“ARCLite”)

Xcode 4.2

(LLVM Compiler 3.0)

Requires modern runtime

Deploys back to OS X v10.6

Deploys back to iOS 4

@autoreleasepool blocks

Xcode 4.2

(LLVM Compiler 3.0)

Using ARC: Requires modern runtime and deploys back to OS X v10.6

Using MRR: All releases

Using ARC: Deploys back to iOS 4

Using MRR: All releases

Default synthesis of @property instance variables and accessor methods

Xcode 4.4

(LLVM Compiler 4.0)

Requires modern runtime

Deploys back to iOS 4

Instance variables in class extensions and @implementation block

Xcode 4.2

(LLVM Compiler 3.0)

Requires modern runtime

All iOS releases

No forward method prototypes needed in @implementation block

Xcode 4.3

(LLVM Compiler 3.1)

All releases

All iOS releases

NSNumber, NSDictionary and NSArray literals

Xcode 4.4

(LLVM Compiler 4.0)

All releases

All iOS releases

@YES and @NO literals

Xcode 4.4 and OS X 10.8 or later SDK

Xcode 4.5 and iOS 6.0 or later SDK

(LLVM Compiler 4.0)

All releases

All iOS releases

NSDictionary and NSArray subscripting

Xcode 4.4 and OS X 10.8 or later SDK

Xcode 4.5 and iOS 6.0 or later SDK

(LLVM Compiler 4.0)

Deploys back to OS X v10.6

Deploys back to iOS 5

“Requires modern runtime” implies 64-bit systems.