//運(yùn)行時(shí)獲取屬性,基本數(shù)據(jù)類型在OC中沒有可選,如果定義成可選,運(yùn)行時(shí)獲取不到,使用KVC就會(huì)奔潰
//private的屬性,運(yùn)行時(shí)同樣獲取不到,使用KVC就會(huì)奔潰
類必須繼承NSObject,否則獲取不到屬性
classPerson:NSObject{
varname ="piaojin"
varage =20
varvalue ="love"
classfuncgetPropertyList() -> [String]{
varcount :UInt32=0
//獲取類的屬性列表,返回屬性列表數(shù)組(可選值)
letlist =class_copyPropertyList(self, &count)
print("屬性的數(shù)量:\(count)")
//遍歷數(shù)組
foriin0..
//根據(jù)下標(biāo)獲取屬性
guardletpty = list?[i],
//獲取屬性的名稱,返回的是c語言的char
letcName =property_getName(pty),
//轉(zhuǎn)成String
letstr =String(utf8String:cName)else{
continue
}
print(str)
}
//釋放C語言的對(duì)象
free(list)
return[];
}
}