IOS面试题——Combie相关合集
一 概述
- 什么是 Combine?
- Combine 的核心组件?
- 如何创建一个 Publisher?
- 如何订阅数据?
- Combine 的常见操作符?
- Combine 处理网络请求?
- Combine 如何避免内存泄漏?
- Combine vs RxSwift?
二 面试题解答(仅供参考)
2.1 什么是 Combine?
1 | -Combine 是 Apple 在 iOS 13+ 推出的响应式编程框架, |
2.2 Combine 的核心组件?
1 | -Publisher(发布者):提供数据流,例如 URLSession.dataTaskPublisher |
2.3 如何创建一个 Publisher?
1 | import Combine |
2.4 如何订阅数据?
1 | let cancellable = publisher.sink { value in |
2.5 Combine 的常见操作符
操作符 | 作用 |
---|---|
.map {} | 转换数据类型 |
.filter {} | 过滤数据 |
.flatMap {} | 展平嵌套流 |
.merge(with:) | 合并多个流 |
.debounce(for:, scheduler:) | 防抖,防止频繁触发 |
.throttle(for:, scheduler:) | 节流,限制触发频率 |
2.6 Combine 处理网络请求?
1 | import Combine |
2.7 Combine 如何避免内存泄漏?
1 | 使用 store(in: &cancellables),集中管理订阅: |
2.8 Combine vs RxSwift?
对比项 | Combine | RxSwift |
---|---|---|
开发商 | Apple 官方 | 社区 |
学习成本 | 低 | 较高 |
依赖性 | iOS 13+ | 需引入第三方库 |
功能 | 基础响应式 | 更丰富(如 Relay ) |