您的位置:首页 > 移动开发 > Swift

swift 3.0 类的构造函数

2017-07-09 20:56 113 查看
/*
//类的构造函数
使用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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: