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