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
}
}
网友评论