objc/runtime

时间:2022-10-06 17:37:08
"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