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,将父类的代码完全覆盖
}