1 #import <Foundation/Foundation.h> 2 3 // Useless forward declaration. This is used for testing. 4 @class FooBar; 5 @protocol FooProtocol; 6 7 @protocol ForwardProcotol; 8 9 // Test public global. 10 extern int publicGlobalVariable; 11 12 // Test weak public global. 13 extern int weakPublicGlobalVariable __attribute__((weak)); 14 15 // Test public ObjC class 16 @interface Simple : NSObject 17 @end 18 19 __attribute__((objc_exception)) 20 @interface Base : NSObject 21 @end 22 23 @interface SubClass : Base 24 @end 25 26 @protocol BaseProtocol 27 - (void) baseMethod; 28 @end 29 30 NS_AVAILABLE(10_11, 9_0) 31 @protocol FooProtocol <BaseProtocol> 32 - (void) protocolMethod; 33 @end 34 35 @protocol BarProtocol 36 - (void) barMethod; 37 @end 38 39 @interface FooClass <FooProtocol, BarProtocol> 40 @end 41 42 // Create an empty category conforms to a forward declared protocol. 43 // <rdar://problem/35605892> 44 @interface FooClass (Test) <ForwardProcotol> 45 @end 46