Swift与OC的不同

作者: OC笔记 | 来源:发表于2017-03-01 11:11 被阅读0次

写在前面

以前做iOS的项目一直使用OC开发,最近做项目时使用了Swift。但是被别人问及

  1. 为什么使用Swift做项目?
  2. Swift与OC相比有什么区别?或者有什么优势?
    ...
    我先是一脸懵逼,因为自己确实没有细细比较过Swift与OC的区别,或者Swift语言到底有什么优势。静下心来想想,自己使用Swift开发项目的最初原因,无非是想证明自己已经掌握了一门新的开发语言,而且,这门语言已经很成熟。
    真要说说Swift与OC的区别,那就先从语法开始总结吧!

Swift与OC语法上的区别

常量和变量
  1. Swift常量使用let声明;变量使用var声明
  2. Swift对常量和变量有类型推断的机制
  3. Swift对变量新增了可选类型,可选即表示这个变量要么有值,要么为nil
函数
  1. Swift一行代码不用写分号
  2. Swift的返回值可以使用元组返回多个值
  3. Swift的函数参数可以设置缺省值
  4. Swift的函数参数有内外标签
  5. Swift的函数可以嵌套函数
  6. Swift子类覆盖父类的方法必须使用关键字override
关键字、保留字、数据类型
  1. nil:OC中nil只能修饰NSObject及其子类对象,表示OC对象指针为空;Swift中nil可以修饰所有类型,包括基础数据类型,表示值缺失
  2. switch:1. Swift中switch语句的值可以是字符串等值 2.Swift中switch不用break,如果想实现几个值贯穿可以使用关键字fallthrough
  3. 数组:Swift的数据可以存储基础类型数据;NSArray只能使用NSNumber存储基础数据类型数据
  4. 布尔类型:Swift的Bool类型true才为真;OC里BOOL类型非0即为真
  5. 取余:Swift可以对浮点型数据取余(Swift3.0后使用函数对浮点型数据取余;%与OC中保持一致)
  6. Swift中对变量取别名使用typealias;OC中使用typedef
Swift新增关键字、运算符
  1. 范围运算符:
    a...b表示[a, b],及a<= value <=b
    a..<b表示[a, b),及a<= value <b
  2. 元组

现在先总结这么多,后续更新。如果有什么遗漏的语法不同点,欢迎大家提出~

相关文章

  • Swift blog

    建议读一遍swift blog来了解OC与swift不同以及swift版本变动细节 OC id -> Swift ...

  • swift基础小结1

    swift基础小结 for 循环OC与Swift对比 While循环与downhill循环 OC与swift使用的...

  • OC与swift的区别

    OC与Swift的区别一(文件结构) OC与Swift的区别一(常量、变量、运算符) OC与Swift的区别三(条...

  • Swift与OC的不同

    写在前面 以前做iOS的项目一直使用OC开发,最近做项目时使用了Swift。但是被别人问及 为什么使用Swift做...

  • OC 与 Swift 的不同

    1、=在swift中不再有返回值 2、结构体CGRect....在swift中可直接设置属性 3、比较相等性 ==...

  • swift与OC混合式编程

    swift与OC混合式编程 swift在不断完善, 与OC并驾齐驱. swift与OC混合式编程是现阶段很多项目开...

  • swift5版本学习

    swift与OC区别:swift与OC1、Swift容易阅读,语法和文件结构简易化。2、Swift更易于维护,文件...

  • OC和Swift混编

    ###一、OC调用Swift 在OC类中导入ProductName-Swift.h文件(根据不同的Target的名...

  • iOS Swift开发之与OC区别之处

    前言 在OC转Swift开发中会有遇到一Swift与OC开发不同之处,下面分别讲讲,遇到了就增加记录,有不全和不足...

  • OC与Swift混编 / Mix & Match

    OC与Swift混编 / Mix & Match OC in Swift 通过Header File创建Bridg...

网友评论

    本文标题:Swift与OC的不同

    本文链接:https://www.haomeiwen.com/subject/ijhzwttx.html