2020年4月11日

Rx 操作符二

摘要: concatMap 将 Observable 的元素转换成其他的 Observable,然后将这些 Observables 串连起来 concatMap 操作符将源 Observable 的每一个元素应用一个转换方法,将他们转换成 Observables。然后让这些 Observables 按顺序的 阅读全文

posted @ 2020-04-11 23:58 码上翻身 阅读(202) 评论(0) 推荐(0)

操作符详解

摘要: 操作符详解 amb 在多个源 Observables 中, 取第一个发出元素或产生事件的 Observable,然后只发出它的元素 当传入多个 Observables 到 amb 操作符时,它将取其中一个 Observable:第一个产生事件的那个 Observable,可以是一个 next,err 阅读全文

posted @ 2020-04-11 23:42 码上翻身 阅读(202) 评论(0) 推荐(0)

git忽略的设置规则

摘要: GraphiQL中API文件与schema.json文件过大,属于动态生成文件,配置忽略项, 更进一步了解了git忽略的设置规则 .gitignore 文件中,每一行的忽略规则的语法如下: 空格不匹配任意文件,可作为分隔符,可用反斜杠转义 开头的文件标识注释,可以使用反斜杠进行转义 ! 开头的模式标 阅读全文

posted @ 2020-04-11 23:41 码上翻身 阅读(757) 评论(0) 推荐(0)

如何选择操作符?

摘要: 如何选择操作符? 决策树可以帮助找到需要的操作符。 决策树 创建一个 Observable 产生特定的一个元素:just 经过一段延时:timer 从一个序列拉取元素:from 重复的产生某一个元素:repeatElement 存在自定义逻辑:create 每次订阅时产生:deferred 每隔一段 阅读全文

posted @ 2020-04-11 22:37 码上翻身 阅读(168) 评论(0) 推荐(0)

Error Handling - 错误处理

摘要: Error Handling - 错误处理 一旦序列里面产出了一个 error 事件,整个序列将被终止。RxSwift 主要有两种错误处理机制: retry - 重试 catch - 恢复 retry - 重试 retry 可以让序列在发生错误后重试: // 请求 JSON 失败时,立即重试, // 阅读全文

posted @ 2020-04-11 22:30 码上翻身 阅读(529) 评论(0) 推荐(0)

Operator - 操作符

摘要: Operator - 操作符 操作符可以帮助创建新的序列,或者变化组合原有的序列,从而生成一个新的序列。 例如,通过 map 方法将输入的用户名,转换为用户名是否有效。然后用这个转化后来的序列来控制红色提示语是否隐藏。我们还通过 combineLatest 方法,将用户名是否有效和密码是否有效合并成 阅读全文

posted @ 2020-04-11 22:22 码上翻身 阅读(367) 评论(0) 推荐(0)

ReplaySubject

摘要: ReplaySubject ReplaySubject 将对观察者发送全部的元素,无论观察者是何时进行订阅的。 这里存在多个版本的 ReplaySubject,有的只会将最新的 n 个元素发送给观察者,有的只会将限制时间段内最新的元素发送给观察者。 如果把 ReplaySubject 当作观察者来使 阅读全文

posted @ 2020-04-11 22:09 码上翻身 阅读(1646) 评论(0) 推荐(0)

Observable & Observer 既是可监听序列也是观察者

摘要: Observable & Observer 既是可监听序列也是观察者 有一部分非常特别的序列。它们既是可监听序列也是观察者 textField的当前文本。它可以看成是由用户输入,而产生的一个文本序列。也可以是由外部文本序列,来控制当前显示内容的观察者: // 作为可监听序列 let observab 阅读全文

posted @ 2020-04-11 21:57 码上翻身 阅读(222) 评论(0) 推荐(0)

ControlEvent

摘要: ControlEvent ControlEvent 专门用于描述 UI 控件所产生的事件,它具有以下特征: 不会产生 error 事件 一定在 MainScheduler 订阅(主线程订阅) 一定在 MainScheduler 监听(主线程监听) 共享附加作用 Observer - 观察者 观察者 阅读全文

posted @ 2020-04-11 21:37 码上翻身 阅读(300) 评论(0) 推荐(0)

Driver

摘要: Driver Driver 是一个精心准备的特征序列 它主要是为了简化 UI 层的代码。不过如果遇到的序列具有以下特征,也可以使用它: 不会产生 error 事件 一定在 MainScheduler 监听(主线程监听) 共享附加作用 这些都是驱动 UI 的序列所具有的特征。 为什么要使用 Drive 阅读全文

posted @ 2020-04-11 21:20 码上翻身 阅读(647) 评论(0) 推荐(0)

Completable

摘要: Completable Completable 是 Observable 的特殊版本 不像 Observable 可以发出多个元素,它要么只能产生一个 completed 事件,要么产生一个 error 事件。 发出零个元素 发出一个 completed 事件或者一个 error 事件 不会共享附加 阅读全文

posted @ 2020-04-11 21:03 码上翻身 阅读(556) 评论(0) 推荐(0)

Rx Swift 共享 附加作用

摘要: 共享 附加作用 共享 附加作用: Driver Signal ControlEvent ... 不共享 附加作用: Single Completable Maybe ... 什么是共享 附加作用,什么是不共享 附加作用? 共享 附加作用: ... let observable: Observable 阅读全文

posted @ 2020-04-11 20:51 码上翻身 阅读(462) 评论(0) 推荐(0)

RxSwift 核心

摘要: RxSwift 核心 Observable - 产生事件(可监听序列) Observer - 响应事件(观察者) Operator - 创建变化组合事件 (操作符) Disposable - 管理绑定(订阅)的生命周期 Schedulers - 线程队列调配(调度器) // Observable<S 阅读全文

posted @ 2020-04-11 16:14 码上翻身 阅读(261) 评论(0) 推荐(0)

函数响应式编程

摘要: 函数响应式编程 函数响应式编程是种编程范式。它是通过构建函数操作数据序列,然后对这些序列做出响应的编程方式。它结合了函数式编程以及响应式编程 函数式编程是种编程范式,它需要我们将函数作为参数传递,或者作为返回值返还。我们可以通过组合不同的函数来得到想要的结果。 函数试编程的优点 灵活 高复用 简洁 阅读全文

posted @ 2020-04-11 15:59 码上翻身 阅读(466) 评论(0) 推荐(0)

RxSwift

摘要: ReactiveX(简写: Rx) 是一个可以帮助我们简化异步编程的框架。 RxSwift 是 Rx 的 Swift 版本。 将KVO,异步操作 和 流 全部被统一成抽象序列 什么要使用 RxSwift ? 复合 - Rx 就是复合的代名词 复用 - 因为它易复合 清晰 - 因为声明都是不可变更的 阅读全文

posted @ 2020-04-11 15:51 码上翻身 阅读(1091) 评论(0) 推荐(0)

Swift 5.1 新语法

摘要: Swift 5.1 新语法 单表达式隐式返回值 在 Swift 5.0 之前的语法中,如果一个闭包表达式只有一个表达式,那么可以省略 return 关键字。 现在 Swift 5.1 以后的版本中计算属性和函数语句同样适用。 // before swift 5.0 struct Rectangle 阅读全文

posted @ 2020-04-11 15:42 码上翻身 阅读(208) 评论(0) 推荐(0)

MVVM

摘要: MVVM Model Model 是用来表示我们会对其进行处理的实际数据,而且其中不应该包含逻辑。 View View 是直接与用户交互的,也不应该包含逻辑,只需要告诉它如何显示,并且在触发事件之后进行转发。 ViewModel ViewModel 会跟踪 View 的事件,和Model 层传给它的 阅读全文

posted @ 2020-04-11 15:40 码上翻身 阅读(124) 评论(0) 推荐(0)

swift标准库中常见的55个协议。

摘要: swift标准库中常见的55个协议。 从协议名结尾字面上我们可以将Protocol分为able、Type、Convertible 三类 从功能角度上来讲的话可以总结为: 功能添加型(able结尾) "可以做什么?" 举例: Hashable: 给你的实例添加一个生成哈希值的功能。 Equatable 阅读全文

posted @ 2020-04-11 15:39 码上翻身 阅读(1084) 评论(0) 推荐(0)

SwiftUI 九

摘要: 让不同类型支持ForEach 什么是ForEach SwiftUI的ForEach类型使我们能够通过转换集合中的每个元素来创建一系列视图。但是,由于ForEach重用了它创建的视图以优化性能(就像其他基于列表的视图一样,如UITableView和UICollectionView一样),它要求我们提供 阅读全文

posted @ 2020-04-11 15:34 码上翻身 阅读(335) 评论(0) 推荐(0)

SwiftUI 八

摘要: 关闭NavigationLink叠加颜色 navigationLink的行为类似于Button,它获得蓝色的默认按钮样式。使用.renderingMode(.original)仅适用于图像视图。 最好使用修改器将默认按钮样式更改为普通样式 .buttonStyle(PlainButtonStyle( 阅读全文

posted @ 2020-04-11 15:32 码上翻身 阅读(158) 评论(0) 推荐(0)

SwiftUI制作View可嵌套组件

摘要: SwiftUI制作View可嵌套组件 了解嵌套组件制造原理 制作一套嵌套组件 掌握配置嵌套组件的preview的方法 如何初始化嵌套参数 基础构造 struct ENavigationView<Content: View>: View { let viewBuilder: () -> Content 阅读全文

posted @ 2020-04-11 15:31 码上翻身 阅读(516) 评论(0) 推荐(0)

导航