Swift - 类初始化和反初始化方法(init与deinit)
作者:hangge | 2015-01-09 16:10
1,init():类的初始化方法(构造方法)
2,deinit():类反初始化方法(析构方法)
/********************************
使用默认构造函数
********************************/
class Student{
//类属性
var name:String = ""
var number:Int = 0
}
var student = Student()
/********************************
自定义构造函数
********************************/
class Person{
//类属性
var name:String
var age:Int
//类构造函数
init(newName:String, newAge:Int){
self.name = newName
self.age = newAge
}
//成员函数(实例方法)
func say() -> String{
return "我叫\(name)"
}
}
var p = Person(newName: "hangge",newAge: 32)
print(p.say())
class DBClass{
var conn:Connection? = Connection()
deinit{
//可以做一些清理工作
self.conn!.close()
self.conn = nil
}
}
var db:DBClass? = DBClass()
db = nil //设置nil后即可执行deinit()方法
全部评论(3)
//类方法
func say() -> String{
return "我叫\(name)"
}
这里的注释应该是 对象方法喔
我都通过Swift写了项目发布, 不过看贵站的资料还是受益匪浅,非常感谢!
站长回复:不客气,我也要谢谢的你提醒。同时也祝贺你项目成功发布。
请问航哥,connection是什么?为什么我写的时候报错说没有声明
站长回复:Connection是一个自定义类,在这里表示一个数据库连接类。本文主要介绍反初始化的使用,所以Connection类的具体代码就不写出来了。
楼主您好,看您博客已经好几天了,感觉学到了很多知识。有个地方想请教一下, 我在别处看到有的 Model 里面写了 两个 init()构造方法, 请问写多个 构造方法的作用是什么呢?
站长回复:一个类可以定义多个init初始化方法,这样创建类对象的时候就可以根据需求使用不同的初始化方法。
比如创建一个按钮对象我们可以:let button:UIButton = UIButton(type:.ContactAdd)
也可以:let button = UIButton(frame:CGRectMake(10, 150, 100, 30))