Class extensions were designed to solve two problems. The first was to enable to compiler to better validate the private interfaces a class might have and the second was to solve a subtle, but gnarly, problem with properties (another feature added to Objective-C 2.0).
The declarations found within the class extension directly extend the declarations found in the class’s primary @interface. In a limited context, the declarations in a class extension can override declarations found in the primary interface.
Posted from Diigo. The rest of my favorite links are here.