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

构造器和析构器

时间:2015-10-28 23:05:28      阅读:382      评论:0      收藏:0      [点我收藏+]

标签:

一 构造器

swift的init方法是没有返回值的,而OC的init方法就有返回值,返回类本身

1.默认构造器

即使我们不写init方法,系统也会为函数默认写一个空的init方法

struct Fahrenheit {
    
    var temperature:Double
    
    init(){
        temperature = 32.0
    }
}

var f = Fahrenheit()

2.自定义构造器

struct Celsius {
    
    var temperature : Double
    
    init(fromFahrenheit fahrenheit:Double){
        temperature = (fahrenheit - 32.0)/1.8
    }
    
    init(fromKelvin kelvin:Double){
        temperature = kelvin - 273.15
    }
    
}

let boilingPointOfWater = Celsius(fromFahrenheit: 212.0)
let freezingPointOfWater = Celsius(fromKelvin: 273.15)


二 析构器

只存在与类中。当类可可选类型的时候,且为nil。deinit方法即会调用

class Player {
    
    var coinsInpurse:Int
    
    init(coins:Int){
        coinsInpurse = coins
    }
    
    func winCoins(coins:Int){
        coinsInpurse += 10
    }
    
    deinit{
        coinsInpurse = 0
    }
}

var playerOne:Player? = Player(coins: 100)

playerOne = nil


构造器和析构器

标签:

原文地址:http://my.oschina.net/u/2346786/blog/523312

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