前端之家收集整理的这篇文章主要介绍了
swift 3.0 类的构造函数,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
/*
//类的构造函数
使用KVC条件
1> 必须继承自NSObject
2> 必须在构造函数中,先调用super.init(0
3> 调用setValueForKeys
4> 如果字典中某一个key没有对应的属性,则需要重写setValueForKeys方法
*/
class LJPerson : NSObject{
var name : String = ""
var age : Int = 0
var height : Double = 0
init(name:String,age:Int) {
self.name = name
self.age = age
}
//重写init方法
init(dict : [String : Any]) {
/*
一般写法,假如此处有多个变量的话,要写好长好长的
if let name = dict["name"] as? String {
self.name = name
}
if let age = dict["age"] as? Int
{
self.age = age
}
if let height = dict["height"] as? Double
{
self.height = height
}*/
super.init()
setValuesForKeys(dict)
}
//倘若不重写init方法的话,就不会出来init()
override init() {
}
//重写这个方法,没有定义的key在里面也不会引起奔溃,如下面的key="phonum"
override func setValue(_ value: Any?,forUndefinedKey key: String) {
}
}
let pw = LJPerson()
let pfg = LJPerson(name: "sww",age: 18)
let ps = LJPerson(dict: ["name":"swgt","age":18,"height":1.09,"phonum":"139"])
print(ps.name,ps.age)