红红の


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

RxSwift 冷信号转换成热信号

发表于 2023-10-18 | 分类于 iOS源码探究

Cold Observable 和观察者是一对一的关系,也就是每次产生订阅时,都会是一个新的资料流。而 Hot Observable 和观察者是一对多的关系,也就是每次产生订阅时,都会使用 「同一份资料流」,将 Cold Observable 转换成 Hot Observable 的过程,就是将原来的资料流公用。

阅读全文 »

RxSwift 的冷热信号

发表于 2023-10-16 | 分类于 iOS源码探究

了解冷热信号

在探索 RxSwift 的冷热信号之前,我们需要先了解什么是冷热信号。

冷信号 热信号
是被动的,只在被订阅后才发送元素 是主动的,即使没有订阅者,它仍然会时刻推送
只能一对一,当有不同的订阅者,消息是重新完整发送 可以有多个订阅者,是一对多,集合可以与订阅者共享信息
订阅者在其开始发送元素之后才开始订阅,那么会错过先前发送的所有元素

在前两篇介绍序列的创建与订阅过程中,可以得知 Observable 序列和 Single 序列都是冷信号。从他们的信号发送的过程中,我们也可以看出来,他们都是在被订阅后才开始发送元素,并且有新的订阅者时,消息都是重新发送的。

阅读全文 »

RxSwift 序列的销毁

发表于 2023-10-15 | 分类于 iOS源码探究

序列销毁的两种方式

在前两篇我们注意到,我们在创建一个序列(不论是 Observable 还是 Single 序列)的实现时,都需要返回一个 Disposable 实例。我们已 Observable 序列为例:

阅读全文 »

Single 序列的创建与订阅

发表于 2023-10-14 | 分类于 iOS源码探究

创建一个简单的 single 序列:

func createSingleTest() {
let single = Single<String>.create { single -> Disposable in
single(.success("1"))

return Disposables.create()
}

let _ = single.subscribe { text in
print("订阅到: \(text)")
} onFailure: { error in
print("失败")
} onDisposed: {
print("销毁")
}
}
阅读全文 »

RxSwift 序列的创建与订阅

发表于 2023-10-12 | 分类于 iOS源码探究

创建一个最简单的序列:

func createRxTest() {
// 1. 创建
let ob = Observable<String>.create { observer -> Disposable in

// 3. 发送信号
observer.onNext("1")
observer.onCompleted()

return Disposables.create()
}

// 2. 订阅
let _ = ob.subscribe(onNext: { (text) in
print("订阅到: \(text)")
}, onError: { (error) in
print("error: \(error)")
}, onCompleted: {
print("完成")
}) {
print("销毁")
}
}
阅读全文 »

iOS 对 SDK不支持模拟器调试适配

发表于 2023-09-05 | 分类于 疑难杂症

开发中,偶尔会遇到部分SDK不支持模拟器,于是,我们需要进行一些适配工作。

阅读全文 »

Alamofire 的重试拦截器

发表于 2023-08-12 | 分类于 Almofire

Alamofire 提供了一个重试拦截器 RetryPolicy,可以针对特定状态码重试,还可以限制重试次数。
多次重试时,并不是失败了就立即重试,而是有一个指数延迟算法。

阅读全文 »

Alamofire 的身份验证拦截器

发表于 2023-08-10 | 分类于 Almofire

Alamofire 提供了一个身份验证的拦截器 AuthenticationInterceptor。

阅读全文 »

从 Moya 到 Alamofire

发表于 2023-08-08 | 分类于 iOS源码探究

如今 Moya + Alamofire 可以说是 Swift 工程必备框架了,今天我们就来聊聊是怎么通过 Moya 发起 Alamofire 请求的。

阅读全文 »

iOS 的边缘侧滑

发表于 2023-08-05 | 分类于 疑难杂症

iOS7 之前,滑动返回这个事儿是不被官方支持的,开发者需要自己实现,进入 iOS7 时代,苹果为了提升用户体验,增加了边缘侧滑的手势。注意这里的边缘,如果需要实现全屏滑动返回 还是需要开发者自己来实现的。

阅读全文 »
12…5

49 日志
9 分类
26 标签
GitHub E-Mail
© 2023 小红
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4