移动端开发 - iOSswift

Swift中的属性修饰符(复习)

2018-05-21  本文已影响12人  小驴拉磨

在Swift中没有.h、.m,只有一个.swift文件。而且在Swift中声明属性也大不相同。这个需要我们先了解Swift中常量和变量的声明。

Swift中的常量和变量

常量的值一旦设定就不能改变,而变量的值可以在之后进行赋值修改。

let studentId = 201012344     // 声明一个名字是studentId的常量,并给他一个值201012344。
var age = 20 // 声明一个名字是age的变量,并给他一个值20。

//你可以在一行中声明多个常量或者多个变量,用逗号隔开:
var x = 0.0, y = 0.0, z = 0.0

注意:
如果你的代码中有不需要改变的值,请使用 let 关键字将它声明为常量。如果需要改变,只将需要改变的值声明为变量。

//下面的代码可以说:“声明一个类型为 String ,名字为 welcomeMessage 的变量。”
var welcomeMessage: String 

//你可以在一行中定义多个同样类型的变量,用逗号分割,并在最后一个变量名之后添加类型标注:
var red, green, blue: Double

注意:
一般来说你很少需要写类型标注。如果你在声明常量或者变量的时候赋了一个初始值,Swift可以推断出这个常量或者变量的类型。

Swift中的内存管理

Swift 也是使用自动引用计数(ARC)机制来跟踪和管理你的应用程序的内存。通常情况下,Swift 内存管理机制会一直起作用,开发者无须自己来考虑内存的管理。ARC 会在类的实例不再被使用时,自动释放其占用的内存。

注意:
引用计数仅仅应用于类的实例。结构体和枚举类型是值类型,不是引用类型,也不是通过引用的方式存储和传递。

Swift 访问修饰符

5种修饰符访问权限排序
open > public > internal > fileprivate > private

声明只读属性

//声明一个String类型,名字为helloWord的可读可写属性。
var helloWord: String

//声明一个String类型,名字为helloWord的外部只读属性,内部可读可写。
private(set) var helloWord: String

Swift中strong,weak,unowned关键字

//默认就是strong,变量
var person = Person()

//默认就是strong,常量不可变
let person = Person()
class Test {
    //会报错
    weak let tentacle = Tentacle() //let is a constant! All weak variables MUST be mutable.
}

注意:
如果两个对象相互强引用也会造成循环引用,与OC类似;

原文出自51Swift转载请保留原文链接

上一篇下一篇

猜你喜欢

热点阅读