《初始化和反初始化》
2016-03-09 10:48
435 查看
//: [Previous](@previous)
// create autho 周双建
// 《初始化和反初始化》
import Foundation
// 我们首先创建一个类
class DemoInitAndDeinit {
// 我们先介绍主的初始化器
init(){
print("I have be created!")
}
// 便捷的初始化,是调用上述初始化器必须的
convenience
init (Str:String){
self.init()
// must be
print("I have be created with convenience !")
}
//
反初始化器
deinit{
print("Game Over")
}
}
//MARK:我们要小试牛刀
var FirstDemo:DemoInitAndDeinit?//
声明一个可变的量
//:我们声明一个类的时候,我们发现,只是声明而没有创建(var FirstDemo:DemoInitAndDeinit?)
// 主初始化器
FirstDemo = DemoInitAndDeinit()
//:我们是用主初始化器,创建对象的时候,发现对象已经被创建了(FirstDemo = DemoInitAndDeinit()
输出:I have be created!)
// 便捷初始化器
FirstDemo = DemoInitAndDeinit(Str:"ZSJ")
//:我们使用便捷式初始化的时候,我们发现,对象已经被创建了(FirstDemo = DemoInitAndDeinit(Str:"ZSJ")
输出:I have be created!I have be created with convenience !)
// 反初始化器
FirstDemo = nil
//:我们发现是对象,returncount为零的时候。我们的反初始化器,开始被调用(FirstDemo = nil
输出: Game Over)
//:总结。初始化和反初始化,一个是创建对象,而另一个是释放对象。在我们App的开发中。我们会不时的创建对象,而没有注意对象的释放。但是,我们却不知道一个很有用的方法。那就是:当我们要在某一个对象消失前,在做一些处理和操作,这个时候,就会用到反初始化器。
//:友情链接
// 我们在项目的开发中,会用到一些,比较特殊的类,比如:可以返回nil的类。
class DemoNil{
convenience init?(Value:Int){
self.init()// must be
if(Value>6){
return nil
}else{
print("你是我小弟")
}
}
}
//:我们先声明一个变量
var Nil_First : DemoNil?
//:我们要一个为 Nil
的
Nil_First = DemoNil.init(Value:
7)
//:我们在要一个不为空的
Nil_First = DemoNil.init(Value:
5)
//:我们发现,(输出:你是我小弟)
// 总结:
如果想输出一个可以为空的初始化对象,我们就可以在,初始化方法的后面加一个?号,来实现它。
//: [Next](@next)
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- 部分喷墨机初始化方法
- C#中数组初始化与数组元素复制的方法
- C#中结构(struct)的部分初始化和完全初始化实例分析
- c#对象初始化顺序实例分析
- 在windows下手动初始化PostgreSQL数据库教程
- js判断变量初始化的三种形式及推荐用的形式
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- 详解C#中使用对象或集合的初始值设定项初始化的操作
- javascript 定义初始化数组函数
- js二维数组定义和初始化的三种方法总结
- 简单分析Swift语言的一些基本特征
- C++类的静态成员初始化详细讲解
- 浅析C++中结构体的定义、初始化和引用
- C语言的数组学习入门之对数组初始化的操作
- Swift与C语言指针结合使用实例