//
// RMBaseModel.swift
// OnlineHire
//
// Created by YR on 2016/12/7.
// Copyright © 2016年 room1000. All rights reserved.
//
import UIKit
class RMBaseModel: NSObject {
required override init() {
super.init()
}
//类方法
class func model(with dictionary: [String: Any]?) -> Self {
let obj = self.init()
//使用kvc机制给模型属性赋值
obj.setValuesForKeys(dictionary!)
return obj
}
//重写kvc方法
override func setValue(_ value: Any?, forKey key: String) {
let str: String!
//将字段值转换为字符串
if value != nil && !(value is NSNull) && (value is NSNumber || value is Int) {
str = String(describing: value!)
super.setValue(str, forKey: key)
} else {
if value == nil || value is NSNull {
super.setValue("", forKey: key)
} else {
super.setValue(value!, forKey: key)
}
}
}
//将模型对象未定义的字段在控制台打印出来
override func setValue(_ value: Any?, forUndefinedKey key: String) {
print(object_getClass(value))
print(String(describing: self.classForCoder)+" 类的 undefined "+key+" == "+String(describing:value))
}
}
需要将模型类继承该类
缺陷:
模型类的字段必须和接口出参的字段保持一致
网友评论