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