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

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

时间:2014-07-02 22:42:28      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   strong   art   html   

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

默认构造器

 

[html] view plaincopy
 
  1. struct Fahrenheit {  
  2. var temperature: Doubleinit(){  
  3. temperature = 32.0  
  4. }   
  5. }   

 

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

 

[html] view plaincopy
 
  1. println("The default temperature   is \(f.temperature)°Fahrenheit")  
  2. // prints "The default temperature is 32.0° Fahrenheit"  

 

自定义构造器

 

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

 

 

[html] view plaincopy
 
  1. struct Celsius {  
  2. var temperatureInCelsius: Double = 0.0  
  3.  init(fromFahrenheit fahrenheit: Double) {  
  4.  temperatureInCelsius = (fahrenheit - 32.0)  
  5. / 1.8  
  6.  }  
  7.  init(fromKelvin kelvin: Double) {  
  8.   temperatureInCelsius = kelvin -273.15  
  9.    }  
  10.  }  
  11.  let boilingPointOfWater = Celsius(fromFahrenheit:212.0)  
  12.  // boilingPointOfWater.temperatureInCelsius is 100.0  
  13.  let freezingPointOfWater =Celsius(fromKelvin:273.15)  
  14.  // freezingPointOfWater.temperatureInCelsius is 0.0  

 

 

析构器(Deinitializer)

 

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

 

[html] view plaincopy
 
  1. deinit {  
  2. // perform thedeinitialization  
  3. }  

 

 

实例:

 

[html] view plaincopy
 
  1. class Player {  
  2.  var coinsInPurse:Int init(coins: Int) {  
  3. println("call init")  
  4. coinsInPurse= coins   
  5. }  
  6. func winCoins(coins: Int) {  
  7. coinsInPurse+= 10  
  8. }  
  9. deinit {  
  10. coinsInPurse = 0  
  11. }  
  12. }  
  13.   var playerOne: Player? = Player(coins: 100)  
  14.  println("coinsInPurse   :  \(playerOne!.coinsInPurse)  
  15.  coins")  
  16. playerOne = nil  
  17. println("PlayerOne has leftthe game")  

 

 

 

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

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

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

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

标签:blog   http   使用   strong   art   html   

原文地址:http://www.cnblogs.com/iOS-Blog/p/3818889.html

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