一.编程范式

Swift可以面向协议编程,函数式编程,面向对象编程.

OC已面向对象编程为主,当然你可以引入类似ReactiveCocoa的类库来进行函数式编程.

二.类型安全

Swift是一门类型安全的语言.鼓励程序员在代码中清楚明确值得类型.如果在代码中使用一个字符串String,那么你不能错误地传递一个整型int给它.因为Swift是类型安全的,他会在代码编译的时候做类型检查,并且把所有不匹配的类型作为一个错误标记出来.

而OC则不然,你声明一个NSString变量,仍然可以传一个NSNumber给它,尽管编译器会抱怨,但是你仍然可以作为NSNumber来使用它.

三.值类型

在Swift中,典型的有Struct,enum以及tuple都是值类型.而平时使用的int ,double,float,string,Array,Dictionary,Set其实都是使用结构体实现的,也是值类型.

OC中,NSNumber,NSString以及集合类对象都是指针类型.

四.枚举增强

Swift的枚举可以使用整型,浮点型,字符串,还能拥有属性和方法,甚至支持泛型,协议,扩展等等.

OC中的枚举鸡肋则很多.

五.泛型

Swift中支持泛型,也支持泛型的类型约束等特性.

苹果推出了Swift2.0版本,为了让开发者从OC更好的过渡到Swift上,苹果也为OC带来了Generics泛型支持,不过OC的泛型也仅停留在编译器警告阶段.

六.协议和扩展

Swift对协议的支持更加丰富,配合扩展(extension),泛型,关联类型等可以实现面向协议编程,从而大大提高代码的灵活性.同时,Swift中的protocol还可以用于值类型,如结构体和枚举.

OC的协议缺乏强约束,提供的optiional特性往往成为很多问题的来源,而如果放弃optional又会让实现代价过大.

七.函数赫尔闭包

Swift函数一等公民,可以直接定义函数类型变量,可以作为其他函数参数传递,可以作为函数返回值返回.

OC里面函数仍然是次等公民,需要selector封装或者使用block才能模拟Swift中类似的效果.

OC和Swift语言的区别相关推荐

  1. OC与Swift混编 注意事项

    前言 随着Swift发展, 很多新的项目开始使用Swift作为首选语言. Swift语言以其简洁.快速.安全的特点获得了一大波粉丝,我也是其中之一. 项目背景:公司一些旧项目大都使用OC编写, 运营中 ...

  2. oc语言和c语言,OC和C语言的混编注意点和好处

    苹果的Objective-C编译器批准用户在统一个源文件里自由地混杂利用C++和Objective-C,混编后的语言叫Objective-C++.有了它,你就能够在Objective-C利用过程中利用 ...

  3. 初探swift语言的学习笔记九(OC与Swift混编)

    作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/34440159 转载请注明出处 如果觉得文章对你有所帮助,请通过留言 ...

  4. OC 与 Swift 区别

    OC 与 Swift 区别 一.block = 闭包 OC--block typedef void(^successBlock)(NSURL* url,id data); swift--闭包 type ...

  5. Swift 语言概览

    Swift 语言概览 参考资料 swift学习资料总结 swift学习资源整理 swift开源项目: 使用swift实现常见加密算法 Firefox客户端使用的HTTP网络框架 使用swift实现的j ...

  6. Swift语言中的控制语句和函数

    前面说了swift的语法不专门来讲,因为专门学语法会感觉比较无聊,所以就穿插来讲,在讲界面和效果一段时间,又讲一下语法,这样或许会好点. 这里就来讲Swift中的控制语句和函数. 控制语句 控制语句是 ...

  7. Swift语言官方文档翻译(3)-The Basics

    The Basics Swift是为IOS和OS应用开发所创建的新语言.虽然定义为新语言,但Swift与这两个语言有很多相似的地方. Swift语言将C和OC语言中的基本原理封装成了自己的版本,包括将 ...

  8. iOS开发系列--Swift语言

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...

  9. IOS开发之OC-Switf 混编 -(OC 引 Swift 文件)

    上篇文章我们介绍了Swift 怎么引 OC 文件接来我们开始OC 引 Swift  文件. (一)OC 引 Swift  文件 1.创建 Demo ( 这个 Demo 名称一定要记住) 2.创建 Sw ...

最新文章

  1. Linux那些事儿之我是Sysfs(6)文件系统
  2. Windows下Nginx+Tomcat整合的安装与配置
  3. EL函数以及自定义标签的应用
  4. Consul集群搭建
  5. Linux操作系统下IPTables配置方法详解(转载)
  6. shell for 循环_linux之shell编程(三)
  7. Win7如何设置标准账号无法访问我的D盘
  8. 简练软考知识点整理-管理沟通
  9. REDIS中加锁和解锁问题
  10. 深光标准技术:谷歌GMS认证是什么?谷歌AER认证是什么?GMS认证的费用跟周期是多少??
  11. ubuntu下深度启动盘制作工具
  12. 你的香腮边轻轻滑落的, 是你的泪,还是我的泪。
  13. pic57 c语言编程,PIC16C57C初始化头文件
  14. 微信小游戏开发实战教程8-消除处理
  15. 二项分布期望和方差的推导及推广
  16. 关于ImportError: DLL load failed: 找不到指定的模块
  17. 心醉花海,芳菲春色入梦来
  18. 我的世界1.13 mod制作——简单的方块(五)
  19. 多智能体强化学习-DGN
  20. git reset soft、mixed和hard的区别和用途详讲

热门文章

  1. 使用mac几年后,得换电池了
  2. 如何创建一个网站?初学者的分步指南
  3. 华为WEB前端全栈成长计划招募
  4. 如何处理u盘一插进电脑就自动打开里面的所有文件夹
  5. 编码通信与魔术初步(一)——通信浅谈
  6. 孙鑫老师VC笔记(转)
  7. 最近超火的公司前端面试题
  8. 小盒子可以在大盒子里面移动
  9. 成都待慕电商:抖音智能推荐常见问题汇总
  10. 内容为王,如何打造爆款小红书笔记?