定义一个person类来介绍一下构造函数
import UIKit
class Person: NSObject {
// 如果定义的属性没有初始化,需要在后面添加“?”
// 如果在构造方法中初始化了,“?”就可以不用添加
var name:String?
/*
在定义基本类型的时候,如果是”基本类型“并且是可选的属性,swift在电泳super.init的时候,不会给它分配内存空间。如果是对象的话,就会分配内存空间。因此要给基础属性赋值,在使用kvc的赋值
*/
// var age:Int?
var age:Int = 0
// 重写构造方法
override init() {
self.name = ""
self.age = 0
}
// 自定义构造方法
// swift 有方法重载的概念 java也有,允许有重名方法名,但是形参和返回值不同就行
init(name:String,age:Int)
{
self.name = name;
self.age = age;
}
// 自定义构造方法
init(dict:[String:NSObject])
{
super.init()
//在使用kvc的时候一定要先把对象初始化
setValuesForKeysWithDictionary(dict)
}
}
ps:
如果你自定义了init方法,没有从重写init方法,那么init方法不能用,只有自定义方法一个