二者联系
- 1、Swift 与 OC 共用一套运行时环境: Swift 的类型可以桥接到 OC 的类型,反之亦然。Swift 编写的代码可以调用 OC 编写的代码,反之也一样。
- 2、同一个工程,可以同时使用 Swift 和 OC:
- a. Swift 项目用 OC -> OC 与 Swift 经中间文件进行桥接,桥接文件包含 OC 的头文件,编译时自动转换为 Swift 可以识别的形式。Swift 就可以使用 OC 的类和它的函数。
- b. OC 项目用 Swift -> 在 Swift 的类中,加上
@objc
的字样,OC 也可以用 Swift 编写的类。但 Swift 跟 C++ 的相互调用,需要 OC 来封装。
- 3、Swift 骨子里大多与 OC 一样: 比如 引用计数、ARC、属性、协议、接口、初始化、扩展类、命名参数、匿名函数等(可能就是术语不同而已)
Swift 的优势
- 1、Swift 易读:
- a. 不再需要行尾添加分号(除非一行写多个语句),if 中不再需要围绕条件表达式的括号;
- b. 方法的调用不再是互相嵌套中括号;
- c. 方法和函数的调用使用行业内标准的在一对括号内使用逗号分割参数列表;
- 2、Swift 更易于维护: 把 OC 头文件和实现文件合并成了一个代码文件 .swift;
- 3、Swift 更安全: Swift 代码中的可选类型使得一个 nil 可选值的可能性变得非常明确,建立了一种短程反馈的循环;
- 4、Swift 代码更少: Swift 减少了重复性语句和字符串操作所需要的代码量,比如使用
+
操作符将两个字符串连在一起; - 5、Swift 速度更快: 删除遗留下来的 C 语言约定,在进行计算密集型任务的性能上,约是 OC 运行速度的 1.4 倍。