1-> Swift 与 Objective_C 共用一套运行时环境
我们编写程序,让程序运行起来,被程序执行的代码并非全部是由我们自己来编写的. 需要同时运行很多预先写好的支持性代码,才能让我们自己的代码运行起来. 程序并非单独存在的,运行时处在一定的环境当中. 我总联想到很多的小蚂蚁在泥土上爬,而我写的程序只是其中的一只.
Swift 和 Objective_C 编译出的程序代码运行在同一套运行环境上面. Swift 的类型可以桥接到 Objective_C 的类型,反之亦然. Swift 编写的代码可以调用 Objective_C 编写的代码,反之亦然.
Objective_C 之前积累下来的大量库, 实现不用改写 Swift 就能直接调用.
2-> 同一个工程,可以同时使用 Swift 和 Objective_C
Objective_C 在一端, Swift 在另一端,两端经中间文件进行桥接. 桥接文件包含 Objective_C 的头文件,编译时自动转成 Swift 可以识别的形式. Swift 就可以使用 Objective_C 的类和它的函数.
在 Swift 的类中,加上 @objc(类名)的字样, Objective_C 也可以使用 Swift 编写的类.但 Swift 跟 C++ 的相互吊桶,需要 Objective_C 来封装.
3-> Swift 骨子里大多与 Objective_C 一样
Objective_C 出现过的绝大数概念,比如引用计数 ARC 属性 协议 接口 初始化 扩展类 命名参数 匿名函数等,在 Swift 中继续有效(可能只是换了个术语).我自己把 Swift 看成是 Objective_C 的一块大的语法糖,其他人可能有不同的感受.
Swift 大多数概念与 Objective_C 一样, 也有些概念在 Objective_C 找不到对应,比如泛型. Swift 中将那些操作写一次就可以作用多个类型的语法叫做泛型.
网友评论