在swift4.0中使用class_copyPropertyList來獲取類里面的屬性列表勒虾,結(jié)果發(fā)現(xiàn)獲取的列表使用為空婚苹,count始終為0梦湘。
后來通過查找資料發(fā)現(xiàn)是因?yàn)閟wift4.0中繼承 NSObject 的 swift class 不再默認(rèn) BRIDGE 到 OC扎谎,如果我們想要使用的話我們就需要在class前面加上@objcMembers 這么一個關(guān)鍵字
@objcMembers class FunctionMyModel: NSObject {
var FUNCTION_NAME:String! = ""
var FUNCTION_FACE:String! = "
}
則能獲取到屬性列表囤捻。
附獲取屬性的方法
func getPropertiesFromClass(object:NSObject) ->([String]){
var result = [String]()
var count:UInt32 = 0
let proList = class_copyPropertyList(object_getClass(object),&count)
for i in 0..<numericCast(count) {
let property = property_getName((proList?[i])!);
let proper = String.init(cString: property)
result.append(proper)
//=print("屬性成員屬性:%@",String.init(utf8String: property) ?? "沒有找到你要的屬性");
}
return result
}