您的位置:首页 > 移动开发 > Swift

《初始化和反初始化》

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息