@interface I1 @end // Matching category @interface I1 (Cat1) - (int)method0; @end // Matching class extension @interface I1 () - (int)method1; @end // Mismatched category @interface I1 (Cat2) - (int)method2; @end @interface I2 @end // Mismatched class extension @interface I2 () - (int)method3; @end // Category with implementation @interface I2 (Cat3) @end @implementation I2 (Cat3) @end // Category with implementation @interface I2 (Cat4) @end @implementation I2 (Cat4) @end // Category with mismatched implementation @interface I2 (Cat6) @end @implementation I2 (Cat6) - (float)blah { return 0; } @end