Swift学习笔记(持续更新...)

2016-03-24  本文已影响240人  半路出家的程序猿

3月24日(周四)

1、元组(Array)的使用场景

元组在临时组织值的时候很有用,但是并不适合创建复杂的数据结构。如果数据结构并不是临时使用,使用类或者结构体更为恰当。

2、Swift 与 Objective-C 中的 nil 的区别

在Objective-C中, nil表示指向对象的指针为空。在Swift中, nil不是指针,它是一个确定的值,用来表示值缺失,任何类型的可选状态都可以被设置为nil ,不只是对象类型。

备注:OC中其它空的的概念,NULL表示C指针为空,Nil表示OC类为空,NSNUll通过对象方法[NSNull null]表示一个空对象,通常用作占位。

3、Swift中惊叹号( !)的用法

可选值后面加感叹号( ! )表示强制解析,特别要注意的是,使用( ! )来获取一个不存在的可选值会导致运行时错误,在使用( ! )来强制解析值之前,一定要确定可选包含一个非 nil 的值。针对此种特殊情况往往会使用 可选绑定 来判断可选值是否为 nil,代码如下:

if let value = yourValue! {

       yourValue 强制拆包后将值赋给 value,if 判断value不为 nil 时在进行后续操作

}

4、Swift中使用KVC需要注意

Swift中使用KVC为模型赋值,对于基本类型(例如Int,float),必须赋初值,否则不会为其分配存储空间。

4月9日(周六)

5、Swift中的值类型和引用类型(reference)

值类型:当发生赋值行为时(赋值给一个变量、常量或在函数传参)中发生的是值拷贝;其中包括Int、Float、Double、String、array、dictionary、Character、Struct、Enum,除了Enum,其余类型在底层都是由结构体实现的,结构体是值类型。

引用类型:当发生赋值行为时,传递的是引用而不是值的拷贝;中期所有类(Class)都是引用类型,函数和闭包也是引用类型。

注:Swift中提供了两个非常有用的操作符===和!==,这两个运算符用于判断两个类变量是否指向同一个类实例。相当于引用所指向内存地址是否相同

6、Swift中的Array(元组)OC中的NSArray 区别

Array:本质是结构体,为值类型,在声明时若明确指出可存储类型(例如:[NSInteger]()),就无法储存其他类型元素,若想存储任意类型需声明为 [AnyObject]()。

NSArray:继承于NSObject,为引用类型(reference),NSArray无需特殊的声明就可以存储任意类型的值。

备注:String、Dictionary和Array一样也都是结构体、值类型。

4月28日(周四)

7、总结几个Swift中的语法糖

1>Map,遍历数组方法,并可以在遍历过程中传入函数对数组中的元素进行操作:

EX:为字符串数组中没有”LC”后缀的字符串,添加”LC”后缀

2>利用元组交换两个『相同』类型变量的值

上一篇下一篇

猜你喜欢

热点阅读