比较 OC 与 Swift
- 简略
- Swift 容易阅读,语法和文件结构简易化
- Swift 更加安全,它是类型安全的语言
- Swift 代码更少,得益于它简洁的语法
- 详尽
- 编程范式,Swift 可以面向协议编程、面向对象编程和函数式编程
- 类型安全,静态语言 Swift 编译时检查所有数据类型,及早提醒修正
- 枚举增强,Swift 中的枚举可以使用 整型、浮点型、字符串等,还能拥有属性和方 法,甚至支持泛型、协议、扩展等等,和 OC 中枚举近乎两个概念
- 支持泛型,Swift 中支持泛型,也支持泛型的类型约束等特性
OC 是动态语言还是静态语言
- Objective-C 是一门非常动态的语言,主要是将数据类型的确定有编译时,推迟到了运行时
- Objective-C 的动态特性主要表现为:动态类型、动态绑定、动态加载
- 动态类型
说简单点就是id类型,动态类型在编译时不能被识别,要等到运行时才会根据语境 来识别 - 动态绑定
OC 可以先跳过编译,到运行的时候再动态的添加函数调用,在运行时才决定要调用什么方法,需要传什么参数进去 - 动态加载
根据需求加载所需要的资源,iOS开发根据机型做适配,最简单例子时retina设备上加载@2x图片,而一些老的普通屏设备直接加载原图
- 动态类型
Swift 的可选类型
Optional
Optional
其实本质上是标准库中的一个 enum 类型
- 如何解包:
1.强制解包
2.可选项绑定:if语句、guard let,如果有值则赋给临时的常量或变量
3.隐式展开:加!一般用于 Swift 类的初始化过程
4.可选链:可选项后面加?不为nil返回可选项结果,否则返回 nil
网友评论