1 @interface I1 2 @end 3 4 // Matching category 5 @interface I1 (Cat1) 6 - (int)method0; 7 @end 8 9 // Matching class extension 10 @interface I1 () 11 - (int)method1; 12 @end 13 14 // Mismatched category 15 @interface I1 (Cat2) 16 - (int)method2; 17 @end 18 19 @interface I2 20 @end 21 22 // Mismatched class extension 23 @interface I2 () 24 - (int)method3; 25 @end 26 27 // Category with implementation 28 @interface I2 (Cat3) 29 @end 30 31 @implementation I2 (Cat3) 32 @end 33 34 // Category with implementation 35 @interface I2 (Cat4) 36 @end 37 38 @implementation I2 (Cat4) 39 @end 40 41 // Category with mismatched implementation 42 @interface I2 (Cat6) 43 @end 44 45 @implementation I2 (Cat6) 46 - (float)blah { return 0; } 47 @end 48 49