一. Swift和Objective-C的联系

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中将那种操作写一次就可以作用多个类型的语法叫做Generics(泛型)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 章节导航:Swift开发指南:使用Swift与Cocoa和Objective-C(Swift 4) - 1.入门S...
    Minecode阅读 3,217评论 0 23
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 今晚睡的最晚一次,明天就是跨年了,后天就是2017年,希望在新的一年里工作顺利身体健康万事如意,开心快乐每一天。
    志梅阅读 193评论 0 0
  • 林雯选的是靠窗的位置,从飞机上俯视着美利坚的大地,心里五味杂陈。她也曾多次问自己,来美利坚到底是为了什么?回想起了...
    冉染阅读 273评论 1 0
  • 日常卡,日常输,日常坑队友。 我对游戏没有天赋,为何不撒手?
    奚所以阅读 91评论 0 0