关于在swift4.0中遇到的坑:class_copyPropertyList获取不到属性列表

在swift4.0中使用class_copyPropertyList来获取类里面的属性列表,结果发现获取的列表使用为空,count始终为0。
后来通过查找资料发现是因为swift4.0中继承 NSObject 的 swift class 不再默认 BRIDGE 到 OC,如果我们想要使用的话我们就需要在class前面加上@objcMembers 这么一个关键字

    @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..

你可能感兴趣的:(关于在swift4.0中遇到的坑:class_copyPropertyList获取不到属性列表)