@interface ClassName @end @interface ClassName: SuperclassName @end @interface ClassName @end @interface ClassName : SuperclassName @end @interface ClassName @end @interface ViewController > : NSObject @property (nonatomic, strong) NSMutableArray *array; @end @interface SDMemoryCache () { } @end @interface SDMemoryCache : NSCache @end @interface __GENERICS(NSArray, ObjectType) (BlocksKit) @end @interface __GENERICS(NSDictionary, KeyType, ObjectType) (BlocksKit) @end @interface ClassName : NSSet @end @interface ClassName : NSSet @end @interface PC1 : NSObject @end // Parse a type parameter with a bound that terminates in '>>'. @interface PC2> : NSObject @end @interface PC8 : NSObject @end NS_ROOT_CLASS @interface ClassName @end IB_DESIGNABLE @interface ClassName @end @interface ClassName { type1 iv1; id iv2; NSObject *object; void (^blockName)(void); } @end @interface ClassName { @public NSObject *object; } @end @interface ClassName @property (readwrite, copy) float number; @end @interface ClassName @property (readwrite, copy, nullable) NSObject *object; @end @interface ClassName @property (readwrite, copy, nullable) NSObject *object, *object2; @end @interface ClassName @property (nonatomic, readonly) NSArray *array; @property (nonatomic, readonly) NSArray > *array; @property (readwrite, copy) NSMapTable *map; @property (nonatomic) NSDictionary *> *URLOperations; @property (nonatomic, copy) NSArray *array; @end @interface ClassName + (void)method:(int)a1 : (int)a2 k2: a3; // - (void)method:(id)one, id two; // FIXME, WON'T FIX @end @interface ClassName - (void)method; - (nullable id)method; - (nullable id) sel; @end @interface ClassName - (nullable id)objectForKey:(nonnull id)key; @end @implementation ClassName @end @implementation ClassName: SuperclassName @end @implementation ClassName @synthesize p1, p2=v2; @end @implementation ClassName @dynamic p1, p2; @end @implementation SDImageIOAnimatedCoder { size_t _width, _height; NSArray *_frames; } @end @protocol P4 -im1; @end @interface I0 @end @implementation I0 -im1 { return 0; }; @end @implementation ClassName { @private type1 iv2; @public type2 iv2; @protected type3 iv3; } @end @implementation ClassName - (void)sel { return; } @end @implementation ClassName - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 joiningArgument3:( argumentType3 )argumentName3 { } @end @implementation ClassName - sel { self; } @end @implementation ClassName - (void)method; { } - (nullable id)method; { } @end @interface ClassName(Category) @end @interface ClassName() @end @interface ClassName(Category) @end @implementation ClassName(Category) @end @protocol Protocol @end @protocol ProtocolName1; @protocol ProtocolName1, ProtocolName2; @protocol ProtocolName @end @class Class1, Class2; @class RACSubject; @class RACSignal<__covariant ValueType>; @class RLMObject, RLMResults; FOUNDATION_EXPORT void func(tr); FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextCustomManager; FOUNDATION_EXPORT CGContextRef __nullable SDGraphicsGetCurrentContext(void) CF_RETURNS_NOT_RETAINED; UIKIT_EXTERN NSNotificationName const Notification; CG_EXTERN CGFloat const FSCalendarStandardHeaderHeight;