美文网首页iOS-Developer-Swift
关于在swift4.0中遇到的坑:class_copyPrope

关于在swift4.0中遇到的坑:class_copyPrope

作者: 它是一只肥猫 | 来源:发表于2019-02-18 17:03 被阅读2次

    在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..<numericCast(count) {
            let property = property_getName((proList?[i])!);
            let proper = String.init(cString: property)
            result.append(proper)
      //=print("属性成员属性:%@",String.init(utf8String: property) ?? "没有找到你要的属性");
          }
          return result
    }
    

    相关文章

      网友评论

        本文标题:关于在swift4.0中遇到的坑:class_copyPrope

        本文链接:https://www.haomeiwen.com/subject/byqzeqtx.html