构造函数
import UIKit
//构造函数
//构造函数类似于OC中的中石化方法:init方法
//默认情况创建一个类时,必然会调用一个构造函数
//即便是没有编写任何构造函数,编译器也会提供一个默认的构造函数
//重写父类构造函数必须继承自NSObject
//构造函数的基本使用
//类的属性必须有值
//如果不是在定义时初始化值,可以在构造函数中赋值
class Person : NSObject {
var name : String?
var age : Int = 0
override init() {
print("=====")
// super.init() 在构造函数中,如果没有明确super.init(),那么系统会自动在函数最后帮助调用
}
init(dict: [String : Any]) {
let tempName = dict["name"]
// tempName是一个Any?,转成String?
// as?最终转成的类型是一个可选类型
// as!最终转成的类型是一个确定类型
name = tempName as? String
// let tempAge = dict["age"]
// let tempAge1 = tempAge as? Int
// if tempAge1 != nil {
// age = tempAge1!
// }
if let age = dict["age"] as? Int {
self.age = age
}
}
// init(dict: [String : Any]) {
// super.init()
// setValuesForKeys(dict)
// }
}
let p1 = Person()
let p2 = Person()
属性监听器
import UIKit
class Person :NSObject {
var name : String? {
willSet {
print(name)
print(newValue)
}
didSet {
print(oldValue)
print(name)
}
}
}
let p1 = Person()
p1.name = "joer"
//p1.name = "mark"
网友评论