class Person : NSObject{
var age : Int = 0
var name : String? = nil
override init() {
// 在构造函数中,如果没有明确super.init(),那么系统会制动帮助调用super.init()
// 系统调用都是在所有代码最后调用
}
}
let p = Person()
自定义构造函数
传递参数
class Person : NSObject{
var age : Int = 0
var name : String? = nil
// 自定义构造函数
init(name : String, age : Int) {
self.name = name
self.age = age
}
}
let p1 = Person(name: "lhy", age: 22)
if let name = p1.name {
print(name)
}
把字典当作参数传进去(一)
class Person : NSObject{
var age : Int = 0
var name : String? = nil
// 自定义构造函数
init(dict : [String : Any]) {
let tempName = dict["name"]
// tempName是一个Any?,转换成String?
// as? 最终转换成的类型是一个可选类型
// as! 最终转换成的类型是一个确定的类型
name = tempName as? String
if let age = dict["age"] as? Int {
self.age = age
}
}
}
let p2 = Person(dict: ["name" : "lht", "age" : 22, "height" : 1.80])