switf kvc 构造函数时

 switf4 时 需要加入

 @objc dynamic var name: String?

基本函数类型时 不可以设置可选类型  必须赋初始值

    // 给基本数据类型属性初始化
   // - 使用KVC会提示无法找到age 的 KEY
   // - 原因: Int 是一个基本数据类型的结构体,OC中没有,OC 中只有基本数据类型!
   // dynamic var age: Int?

@objc dynamic  var age:Int = 0

kvc 设置私有属性 报错

 私有属性   private 设置 外部禁止访问 oc可以通过运行时获得

init(dict: [String:Any]){
       // 保证对象已经完全初始化完成!
       super.init()

      // 'self' used before super.init call
       // 使用self 的方法 **之前**,应该调用super.init
       // KVC 的方法,是OC的方法,在运行时给对象发送消息
       // 要求对象已经实例化完成!
       setValuesForKeys(dict)
    }

// 重写父类的方法
   override func setValue(_value:Any?, forUndefinedKey key:String) {
       // 没有调用 super,将父类的代码完全覆盖
    }
一天一章
原文地址:https://www.cnblogs.com/hangman/p/8401875.html