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

简介: <div><p><span style="font-size:14px;">为了初始化结构体和类等类型的实例属性。</span></p><p><span style="font-size:14px;">默认构造器</span></p><p><span style="font-size:14px;"></span></p><pre name="code" class="html">str

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

默认构造器

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交流讨论论坛论坛:http://www.cocoagame.net

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



目录
相关文章
Swift5.1—必要构造器
Swift5.1—必要构造器
131 0
|
安全
Swift5.1—构造器的自动继承
Swift5.1—构造器的自动继承
200 0
|
存储 安全 Swift
Swift5.1—指定构造器和便利构造器
Swift5.1—指定构造器和便利构造器
565 0
Swift5.1—指定构造器和便利构造器
|
Swift iOS开发
Swift里的类继承,构造和析构代码
敲敲打打, 每天差不多一个小时来学这个, 相信到时候再用XCODE,感觉会熟悉很多。。
1348 0
Swift构造器重载
<span style="font-size:14px;">与函数一样,方法也存在重载,其重载的方式与函数一致。那么作为构造器的特殊方法,是否也存在重载呢?答案是肯定的。<br>一、构造器重载概念<br>Swift中函数重载的条件也适用于构造器,条件如下:<br>函数有相同的名字;<br>参数列表不同或返回值类型不同,或外部参数名不同;<br>Swift中的构造器可以满足以下两个条件,代码如下
1104 0
|
存储 数据库 Swift
|
3月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
72 2
|
3月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
96 1
|
4月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
【10月更文挑战第18天】本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户按下按钮时,按钮将从圆形变为椭圆形并从蓝色渐变为绿色;释放按钮时,动画恢复原状。通过UIView的动画方法和弹簧动画效果,实现平滑自然的动画过渡。
82 5
|
6月前
|
存储 移动开发 Swift
使用Swift进行iOS应用开发:探索现代移动开发的魅力
【8月更文挑战第12天】使用Swift进行iOS应用开发,不仅能够享受到Swift语言带来的简洁、快速、安全的编程体验,还能够充分利用iOS平台提供的丰富资源和强大功能。然而,iOS应用开发并非易事,需要开发者具备扎实的编程基础、丰富的实践经验和不断学习的精神。希望本文能够为您的iOS应用开发之旅提供一些有益的参考和帮助。

热门文章

最新文章

相关课程

更多