IOS面试题——Swift属性,单例(5)
一 面试题汇总
- 什么是计算属性,什么是存储属性?只读计算属性,延迟存储属性呢?
- 枚举的原始值属于计算属性还是存储属性?
- 什么是属性观察器?willSet,didSet
- 实例属性和类型属性有什么区别?
- Swift单例如何实现?
- 存储类型属性有什么特点? 在什么时候初始化?多个线程同时访问呢?
二 面试题解答(仅供参考)
2.1 什么是计算属性,什么是存储属性?只读计算属性,延迟存储属性呢?
1 | 存储属性:直接存储一个值,保存在实例中。它可以是var或let,并且值会在对象生命周期内持久存在。 |
2.2 枚举的原始值属于计算属性还是存储属性?
1 | 枚举的原始值是一个 存储属性,它存储在每个枚举实例中,并且通过rawValue属性可以访问。 |
2.3 什么是属性观察器?willSet,didSet
1 | 属性观察器是一种用于监视和响应属性值变化的机制, |
2.4 实例属性和类型属性有什么区别?
1 | 实例属性:每个实例有自己的属性值,通常用于描述实例的状态。 |
2.5 Swift单例如何实现?
1 | Swift 提供了简单的方式来实现单例模式,最常见的方法是使用静态常量和 dispatch_once |
2.6 存储类型属性有什么特点? 在什么时候初始化?多个线程同时访问呢?
1 | 存储类型属性在第一次访问时初始化,static let 线程安全,static var 需自行确保线程安全。 |
三 参考
- 简书—Swift属性,单例