码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:swift   ios   swift教程   swift视频   ios8   

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

默认构造器

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)

标签:swift   ios   swift教程   swift视频   ios8   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!