swift 小记

1、可选类型。

1.转义特殊字符 \0 (空字符)、\\(反斜线)、\t (水平制表符)、\n (换行符)、\r (回车符)、\" (双 引号)、\' (单引号)。

2.单字节 Unicode 标量,写成 \xnn,其中 nn 为两位十六进制数。

3.双字节 Unicode 标量,写成 \unnnn,其中 nnnn 为四位十六进制数。
4.四字节 Unicode 标量,写成 \Unnnnnnnn,其中 nnnnnnnn 为八位十六进制数。 

 

5、注意:结构体总是通过被复制的方式在代码中传递,因此请不要使用引用计数。

结构体实例总是通过值传递,类实例总是通过引用传递。
计算属性可以用于类、结构体和枚举里,存储属性只
能用于类和结构体。

属于引用类型的类(class)则不一样,把一个引用类型的实例赋给一个常量后,仍然可以 修

改实例的变量属性。

6、

因为类是引用类型,有可能有多个常量和变量在后台同时引用某一个类实例。(对于结构体 和枚举来说,这并不成立。因为它们作值类型,在被赋予到常量,变量或者传递到函数

时,总是会被拷贝。)

 
 
 7、

除存储属性外,类、结构体和枚举可以定义计算属性,计算属性不直接存储值,而是提供 一

个 getter 来获取值,一个可选的 setter 来间接设置其他属性或变量的值。

8、

结构体和枚举能够定义方法是 Swift 与 C/Objective-C 的主要区别之一。 

9、

具体来说,Swift 默认仅给方法的第一个参数名称一个局部参数名称;默认同时给第二个和后 续的参数名称局部参数名称和外部参数名称 

10、

声明类的类型方法,在方法的 func 关键字之前加上关键字 class;声明结构 体和枚举的类型方法,在方法的 func 关键字之前加上关键字 static。 

11、

类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值。存储型属性的值不

能处于一个未知的状态。 

12、

对于生命周期中引用会变为 nil 的实例,使用弱引用;对于初始化时赋值之后引用再也不会

赋值为 nil 的实例,使用无主引用。 

13、

注意:扩展可以添加新的计算属性,但是不可以添加存储属性,也不可以向已有属性添加属 性观测器(property observers)。 

14、

协议方法支持变长参数(variadic parameter),不支持默认参数(default parameter)。 

15、委托模式的实现很简单: 定义协议来封装那些需要被委托的函数和方法, 使其遵循者拥有 这些被委托的函数和方法。

16、

可选协议只能在含有@objc 前缀的协议中生效。且@objc 的协议只能被类遵循。 

17、

可以对类型的实例使用dynamicType 表达式来获取该实例在运行阶段的类型

 

你可能感兴趣的:(swift)