// 1 定义模型属性的时候,如果是对象,通常都是可选的(- 在需要的时候创建 - 避免写构造函数,可以简化代码)
// 2 使用kvc方法之前,应该调用super.init保证对象实例化完成
class Person : NSObject {
// name属性是可选的,在oc中很多的属性都是在需要的时候创建的
// 例如:vc.view/tableviewcell.textLabel等
// 延迟加载,在需要的时候再创建
var name:String?
// 重载构造函数,使用字典为本本类设置初始值
init(dict:[String:AnyObject]) {
// 保证对象已经完全初始化完成
super.init()
// 使用self的方法,setvaluesforkeys **之前** 应该调用super.init
// kvc的方法是oc的方法, **在运行时给对象发送消息**
// *** 要求对象已经实例化完成
setValuesForKeys(dict)
}
}
本文介绍Swift中实现延迟加载的技巧及KVC方法的正确使用方式。通过一个具体的Person类示例,演示如何在构造函数中利用字典初始化属性,并强调了在使用KVC方法前调用super.init的重要性。
2467

被折叠的 条评论
为什么被折叠?



