首页 > 其他 > 详细

Swift构造器(Initializer)与析构器(Deinitializer)

时间:2014-07-02 08:42:40      阅读:390      评论:0      收藏:0      [点我收藏+]

为了初始化结构体和类等类型的实例属性。

默认构造器

struct Fahrenheit {
var temperature: Doubleinit(){
temperature = 32.0
} 
} 

var f = Fahrenheit() //调用默认构造器 init() ,没有参数 没有返回值。

println("The default temperature   is \(f.temperature)°Fahrenheit")
// prints "The default temperature is 32.0° Fahrenheit"

自定义构造器

 

 定义类两个构造器:init(fromFahrenheit:)  和init(fromKelvin:)

 

struct Celsius {
var temperatureInCelsius: Double = 0.0
 init(fromFahrenheit fahrenheit: Double) {
 temperatureInCelsius = (fahrenheit - 32.0)
/ 1.8
 }
 init(fromKelvin kelvin: Double) {
  temperatureInCelsius = kelvin -273.15
   }
 }
 let boilingPointOfWater = Celsius(fromFahrenheit:212.0)
 // boilingPointOfWater.temperatureInCelsius is 100.0
 let freezingPointOfWater =Celsius(fromKelvin:273.15)
 // freezingPointOfWater.temperatureInCelsius is 0.0


析构器(Deinitializer)


析构器与构造器相反,在对象释放时候调用。 使用关键字 deinit,语法如下:

deinit {
// perform thedeinitialization
}


实例:

 

class Player {
 var coinsInPurse:Int init(coins: Int) {
println("call init")
coinsInPurse= coins 
}
func winCoins(coins: Int) {
coinsInPurse+= 10
}
deinit {
coinsInPurse = 0
}
}
  var playerOne: Player? = Player(coins: 100)
 println("coinsInPurse   :  \(playerOne!.coinsInPurse)
 coins")
playerOne = nil
println("PlayerOne has leftthe game")


Swift交流讨论论坛论坛:bubuko.com,布布扣http://www.cocoagame.net

欢迎加入Swift技术交流群:362298485



Swift构造器(Initializer)与析构器(Deinitializer),布布扣,bubuko.com

Swift构造器(Initializer)与析构器(Deinitializer)

原文:http://blog.csdn.net/tonny_guan/article/details/36196401

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!