objc/runtime

"T@"MyInnerObject",&,N,V_myInnerObject" MyInnerObject

"Td,N,V_cgfloat" CGFloat

"Tf,N,V_normalFloat" float

"T@"NSArray",&,N,V_array" NSArray

"T@"NSDictionary",&,N,V_dictionary" NSDictionary

"Tq,N,V_normalLong" long

"Tq,N,V_integer" integer

"Ti,N,V_normalInt" int

"T@"NSDate<MyObjectDelegate>",&,N,V_date" NSDate<MyObjectDelegate>

经过测试, 基本确定了 objc_property_t 

const char *attr = property_getAttributes(property);的值

所有类型最开始都是T 

第二个字符表示他们的类型, f代表float, d代表CGFloat @代表对象 q代表长整如(NSInteger/long/long long) , 

委托会在对象类型后面<>, 多个委托将通过逗号","分割

在 ""中, 如"T@"MyInnerObject",&,N,V_myInnerObject"

其中的 ""(反斜杠)其实是字符串的转意字符, 可以忽略; 其实字符串打印出来其实是

T@"MyInnerObject",&,N,V_myInnerObject

 

原文地址:https://www.cnblogs.com/apem/p/4691215.html