Swift——类的构造函数

时间:2021-11-28 19:28:17
class Person:NSObject{


var name:String?
var age:Int = 0

override init(){
//在构造函数中,如果没有明确super.init(),那么系统会帮助调用super.init()
print("dddd")
}

//自定义构造函数
init(name:String,age:Int) {

self.name=name
self.age=age

}
init(dict:[String:AnyObject]) {

let tempName=dict["name"]
//tempName 是AnyObject?转成String?
//as? 最终转成的类型是一个可选类型
//as! 最终转成的类型是一个确定的类型
name=tempName as? String

if let tempAge=dict["age"] as?Int{

age=tempAge
}


}


}

let p=Person()
let p1=Person(dict: ["name":"哈哈" as AnyObject,"age":15 as AnyObject])
let p2=Person(name: "哈哈", age: 18)