一、OC和swift简介
OC:基础c的面向对象的编程语言,1980年开始使用,主要应用于MAC OSX和iOS平台应用的开发,至今已有三十多年历史,因苹果4和4s的火爆,OC在10-14年极为火爆,语言排行持续飙升,11年赢得了 TIOBE 2011 年度编程语言。
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与OC共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。2015年12月4日,苹果公司宣布其Swift编程语言现在开放源代码。可见苹果公司对swift的青睐。
二、OC和swift比较
相对OC,Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱得 Cocoa 和 Cocoa Touch 框架,他的降临将重新定义软件开发。Swift集成了Objective-C 的命名参数以及动态对象模型,可以无缝对接到现有的 Cocoa 框架,并且可以兼容 Objective-C 代码。在此基础之上,Swift 还有许多新特性并且支持过程式编程和面向对象编程。
Swift更加安全,Swift消除了不安全的代码。变量总是初始化之前使用,数组和整数检查溢出,内存自动管理。语法被调整到可以很容易地定义你的意图 - 例如,简单的三个字符的关键字定义一个变量(var)或常量(let)。
在Swift的安全模式被调整为强大的Cocoa和Cocoa Touch的API。认识和妥善处理其中的对象是零案件是基本的框架和Swift的代码使这个非常容易。添加一个字符可以代替曾经Objective-C中整行的代码。这一相互配合,使构建iOS和Mac应用程序比以前更加容易和安全。在编译时也能屏蔽掉一些使用OC语言会产生的问题。
OC可以与C和C++混编,不过其smalltalk风格的语法让习惯C系语言的人很不习惯;swift灵活一些,而且吸收了其他语言的一些较优的语法特性,但Swift是强语法,其编译速度比较慢。不过都是iOS和OS X平台上的特定语言,编写原生程序的话只能用他们,所以说找他们的优点和不足其实没什么意义,语言也就是一种表达符号,过多讨论这些没有价值,编程的思想才是最重要的。
三、OC和swift交叉使用
在Swfit代码中添加OC文件的时候,需要依赖一个bridging header文件,Xcode会在你新建一个OC文件的时候自动帮你创建(项目是使用Swift语言创建的),点击yes,Xocde就会在新建OC文件的同时帮我们新建一个 xxx-Bridging-Header.h 文件,xxx是你的项目名称(Product Module),然后我们得编辑这个文件才能让Swfit代码调用OC代码,如果是手动拖入,则需要我们在Build Setting手动配置。
当在OC里调用Swift中的代码时,需要依赖一个xcode自动生成的头文件,这个自动生成的头文件定义了项目中所有的Swift文件,这个头文件的命名为 “xxx-Swift.h” ,xxx为项目的名称,此外就不需要再做任何事情了,你只需要在OC代码里导入这么一个文件,就可以跟没事一样拿任意一个Swift中的代码用了
|
调用Swift代码 |
调用OC代码 |
Swift代码 |
无需声明 |
#import "ProductModuleName-Swift.h” |
OC代码 |
依赖bridging header文件 |
#import "Header.h” |
四、OC和swift选择
从语言上来讲,swift比oc更加简洁高效。 然而从开发角度上看,swift要比oc难度大,对于已经熟悉 Cocoa, Cocoa touch 开发的开发人员来讲,Swift 还是很容易上手的,对于完全不懂Objective-C ,并且没有任何 Cocoa, Cocoa touch 开发经验的人来讲,直接上手学习Swift 依然会非常困难。因为你不但要熟悉语言结构,你还要去熟悉各种API, 熟悉整个Cocoa, Cocoa ,所以建议初学者还是从OC起步会更加顺手。
swift作为一门新语言,里边还是存在不少问题,近几年版本更新会较为频繁,所以近期还是建议使用oc开发。