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