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,将父类的代码完全覆盖
override func setValue(_value:Any?, forUndefinedKey key:String) {
// 没有调用 super,将父类的代码完全覆盖
}