《初始化和反初始化》

前端之家收集整理的这篇文章主要介绍了《初始化和反初始化》前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


//: [PrevIoUs](@prevIoUs)

// create autho 周双建

// 《初始化和反初始化》

import Foundation

// 我们首先创建一个类

class DemoInitAndDeinit {

// 我们先介绍主的初始化器

init(){

print("I have be created!")

}

// 便捷的初始化,调用上述初始化器必须的

convenience init (Str:@H_301_61@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:@H_301_61@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)

猜你在找的Swift相关文章