The Extended Objective-C library extends the dynamism of the Objective-C programming language to support additional patterns present in other programming languages (including those that are not necessarily object-oriented).
- Safe categories for adding methods to a class without overwriting anything already there.
- Concrete protocols for providing default implementations of the methods in a protocol.
- Simpler and safer key paths which automatically checks key paths at compile-time.
- Compile-time checking of selectors to ensure that an object declares a given selector.
- Easier use of weak variables in blocks
- Scope-based resource cleanup for automatically cleaning up manually-allocated memory, file handles, locks, etc., at the end of a scope.
- Algebraic data types generated completely at compile-time