Swift和Objective-C的联系
2016-03-18 11:27
507 查看
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(泛型)。
相关文章推荐
- Objective-C是动态运行时语言是什么意思?
- org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
- COM 学习
- 复合语句在 Objective-C 中的使用
- Object 转 json 工具类
- Objective-C中谓词(NSPredicate)的应用
- Object对象之equals方法
- QT操作Excel(通过QAxObject使用了OLE,前提是本地安装了Excel)
- DOM (Document Object Model)文档对象模型
- 利用JsonObject解析Json数据
- Gson 解析时候报错: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
- BOM (Browser Object Model) 浏览器对象模型
- Objective-C中的集合类
- iOS开发系列--Objective-C之协议、代码块、分类
- Java Object有哪些公用方法?
- objective c关于下划线和双下划线的用法
- iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式
- iOS 中C如何调用Objective c的代码更新界面问题解决
- 论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- Can not add Newtonsoft.Json.Linq.JValue to Newtonsoft.Json.Linq.JObject.