Swift
版本号
$ xcrun swift --version(查看当前系统版本)
- 1.0 2014年推出的第一个版本
- 1.2 (ABI不稳定)
- 2.0 (不兼容1.2,ABI不稳定)
- 2.2 (可以通过XCode自动将语法变更到swift3.0)
- 3.0 (ABI相对稳定,使用者增加比较快)
特点
- 优于OC,快速,现代,安全,互动
- 取消了预编译指令包括宏
- 可以使用现有的Cocoa和Cocoa Touch框架
- Swift取消了OC的指针的使用
- Swift被简单的形容为 没有 C 的 Object-C
- 舍弃Object-C早期应用Smalltalk的语法,全面改为句点表示法,更加现代
- 提供了类似Java的命名空间(namespace),泛型(generic),运算对象重载(operator overloading)
- Swift 3.0版本 对Foundation框架做了大量调整
- 大部分 去除了 'NS'前缀
- 将绝大部分class转换为struct
与OC对比
-
在Swift中没有
main.m
,@UIApplicationMain
是程序的入口 -
在Swift中只有
.swift
文件,没有.h/.m
文件的区分 -
在Swift中,一个类就是用一对
{}
括起的,没有@implementation
和@end
-
每个语句的末尾没有分好,在其他语言中,分好是用来区分不同语句的
- 在Swift中,一般都是一行一句代码,因此不用使用分号
-
与OC的语法对比
- 在OC中
alloc/init
对应Swift中()
- 在OC中
alloc/initWithXXX
对应Swift中(XXX:)
- 在OC中的类函数调用,在Swift中,直接使用
- 在Swift中,绝大多数可以省略
self.
,但是一般不写,可以提高对语境的理解(闭包会体会) - 在OC中的枚举类型使用
UIButtonTypeContactAdd
,而在Swift中分开,操作热键:回车->向右->.
- Swift中,枚举类型的前缀可以省略,如:
.contactAdd
,但是:很多时候没有智能提示
- Swift中,枚举类型的前缀可以省略,如:
- 监听方法,直接使用字符串引起
- 在Swift中使用
print()
替代OC中的NSLog
- 在OC中