property_getAttributes
const char *property_getAttributes(objc_property_t prop)が返すものをBNF記法で示してみよう。
<property attribtue> ::= T<type>,<attribute-list>V<property name> <property name> ::= property name <attribute-list> ::= [<attribute-list>]<attribute>, <attribute> ::= <nonatomic>|<copy>|<retain>|<readonly> <nonatomic> ::= N <copy> ::= C <retain> ::= & <readonly> ::= R <type> ::= <pointer-type><named-objc-class>|<scalar-type> <pointer-type> ::= ^ <named-objc-class> ::= @"<class-name>" <class-name> ::= class name <scalar-type> ::=<id>|<short>|<他多数!!> <id> ::= @ <short> ::= s <他多数!!> ::= objc/runtime.hを見ろ!
って、そもそもBNF記法が分からなかったw
こういう時は、あれだ。実例で示そう。
@property (nonatomic, retain, readonly) NSObject *obj01;
だと
T@"NSObject",R,&,N,Vobj01
となります。
@property (copy) NSString *title;
だと
T@"NSString",C,Vtitle
です。
struct A { int a; char b; }; @property (readonly) struct A *nanika;
だと
T^{A="a"i"b"c},R,Vnanika
だ。