================================================================================ ifdef ================================================================================ #ifdef A @interface UIImageView () @end @interface AA () { } @property (nonatomic) int i; #if AA @property (nonatomic) int i; #elif AA -(void)test1; #else +(void)test2; #endif @end @implementation AA - (void)test { } #ifdef AA - (void)test { } #else - (void)test { } #endif @end #endif -------------------------------------------------------------------------------- (translation_unit (category_interface name: (identifier) (protocol_qualifiers (protocol_identifier))) (category_interface name: (identifier) (property_declaration (property_attributes (nonatomic)) type: (primitive_type) declarator: (identifier)) (property_declaration (property_attributes (nonatomic)) type: (primitive_type) declarator: (identifier))) (class_implementation name: (identifier) (method_definition scope: (instance_scope) type: (primitive_type) selector: (identifier) body: (compound_statement)) (method_definition scope: (instance_scope) type: (primitive_type) selector: (identifier) body: (compound_statement)))) ================================================================================ NS_ASSUME_NONNULL: outside class interface ================================================================================ NS_ASSUME_NONNULL_BEGIN @interface ClassName @property (nonatomic, strong) NSObject *object; @end NS_ASSUME_NONNULL_END -------------------------------------------------------------------------------- (translation_unit (class_interface name: (identifier) (property_declaration (property_attributes (nonatomic) (strong)) type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) ================================================================================ NS_ASSUME_NONNULL: inside class interface ================================================================================ @interface ClassName NS_ASSUME_NONNULL_BEGIN @property (nonatomic, strong) NSObject *object; NS_ASSUME_NONNULL_END @end -------------------------------------------------------------------------------- (translation_unit (class_interface name: (identifier) (property_declaration (property_attributes (nonatomic) (strong)) type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))