1 2 @protocol foo; 3 @class itf; 4 5 // Expressions 6 typedef typeof(@"foo" "bar") objc_string; 7 typedef typeof(@encode(int)) objc_encode; 8 typedef typeof(@protocol(foo)) objc_protocol; 9 typedef typeof(@selector(noArgs)) objc_selector_noArgs; 10 typedef typeof(@selector(oneArg:)) objc_selector_oneArg; 11 typedef typeof(@selector(foo:bar:)) objc_selector_twoArg; 12 13 14 // Types. 15 typedef typeof(id<foo>) objc_id_protocol_ty; 16 17 typedef typeof(itf*) objc_interface_ty; 18 typedef typeof(itf<foo>*) objc_qual_interface_ty; 19 20 @interface PP property(assign)21@property (assign) id prop; 22 @end 23 24 static inline id getPseudoObject(PP *p) { 25 return p.prop; 26 } 27