swift4.0中模型转字典

1.怎么实现模型转字典呢?R-U-N-T-I-M-E

import Foundation
extension NSObject{
    /// 我们只要调用这个方法就好了.
    /// 通过字典设置属性值(运用场景,可以用来实现模型转字典的)
    ///
    /// - Parameter dic: [属性名:属性值]
    /// - Returns: 是否设置成功
    func setValueOfProperty(dic:[String:String])->Bool{
        let allPropertys = self.propertyList()
        for key in allPropertys {
            self.setValue(dic[key], forKey: key)
        }
        return true
    }
    /// 获取属性值
    ///
    /// - Returns: 返回获取到的属性值数组
    func getValueOfProperty()->[String]{
        let allPropertys = self.propertyList()
        var values = [String]()
        for key in allPropertys {
            let val = self.value(forKey: key) as? String ?? ""
            values.append(val)
        }
        return values
    }
    ///[使用运行时]获取当前类所有的属性数组
    func propertyList() -> [String] {
        var count :UInt32 = 0
        //获取‘类’的属性列表
        guard let list = class_copyPropertyList(self.classForCoder, &count) else{
            return []
        }
        var arr = [String]()
        for i in 0..<Int(count) {
            //根据下标 获取属性
            let a = list[i]
            //获取属性的名称
            let cName = property_getName(a)
            let n = String(utf8String:cName)
            arr.append(n ?? "")
        }
        // 在这个方法里面创建数据表.
        if tableViewIsExists() == false{
            createTable(arr: arr)
        }

        free(list)
        return arr
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容