美文网首页
swift3.0 使用KVC和类型方法实现字典转模型

swift3.0 使用KVC和类型方法实现字典转模型

作者: bugbiu | 来源:发表于2017-07-24 18:26 被阅读25次
//
//  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))
    }
}

需要将模型类继承该类
缺陷:
模型类的字段必须和接口出参的字段保持一致

相关文章

  • swift3.0 使用KVC和类型方法实现字典转模型

    需要将模型类继承该类缺陷:模型类的字段必须和接口出参的字段保持一致

  • KVC的简单使用

    KVC字典转模型 KVC 中经常使用的就是字典转模型 KVC的大招 KVC设置对象属性及取值 KVC间接设置对象属...

  • iOS 字典转模型KVC实现

    字典转模型 KVC 实现 KVC 字典转模型弊端:必须保证,模型中的属性和字典中的key一一对应。 如果不一致,就...

  • 14-Swift中字典转模型

    字典转模型(初始化时传入字典) 字典转模型(利用KVC转化) 一、 普通的字典转模型: 二、利用KVC字典转模型:

  • 字典转模型(二) --学习MJExtension

    字典转模型方法实现(利用kvc可快速实现) 但是有时字典一些属性我们不需要时, 即我们模型的属性与字典的key不一...

  • 使用runtime和KVC字典转模型

    使用KVC字典转模型的时候,KVC是通过遍历字典中的所有的key去模型中查找有没有对应的属性名,而runtime则...

  • KVC底层实现和应用

    一、KVC字典转模型的实现原理 假设dict字典中有name,icon的Key,CYXModel模型类中必须要有同...

  • iOS KVC运用

    主要应用场景 KVC 属性赋值 添加和访问私有成员变量(ivar) 字典转模型 取值 模型转字典 集合操作符 自定...

  • 自动生成属性的模型

    利用 KVC 实现的自动生成属性的模型 调用下面的方法 在输出控制台输出属性模型, 利用kvc 属性名字与字典的 ...

  • iOS简单字典转模型

    使用方法:setValuesForKeysWithDictionary 进行字典转模型

网友评论

      本文标题:swift3.0 使用KVC和类型方法实现字典转模型

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