zoukankan      html  css  js  c++  java
  • [RxSwift]4.2.0、Observer

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(let_us_code)
    ➤博主域名:https://www.zengqiang.org
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/13576573.html
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    热烈欢迎,请直接点击!!!

    进入博主App Store主页,下载使用各个作品!!!

    注:博主将坚持每月上线一个新app!!!

    观察者 是用来监听事件,然后它需要这个事件做出响应。例如:弹出提示框就是观察者,它对点击按钮这个事件做出响应。

    响应事件的都是观察者

    在 Observable 章节,我们举了个几个例子来介绍什么是可监听序列。那么我们还是用这几个例子来解释一下什么是观察者:

    • 当室温高于 33 度时,打开空调降温

      1

      打开空调降温就是观察者 Observer<Double>

    • 当《海贼王》更新一集时,我们就立即观看这一集

      1

      观看这一集就是观察者 Observer<OnePieceEpisode>

    • 当取到 JSON 时,将它打印出来

      1

      将它打印出来就是观察者 Observer<JSON>

    • 当任务结束后,提示用户任务已完成

      1

      提示用户任务已完成就是观察者 Observer<Void>

    如何创建观察者

    现在我们已经知道观察者主要是做什么的了。那么我们要怎么创建它们呢?

    和 Observable 一样,框架已经帮我们创建好了许多常用的观察者。例如:view 是否隐藏,button 是否可点击, label 的当前文本,imageView 的当前图片等等。

    另外,有一些自定义的观察者是需要我们自己创建的。这里介绍一下创建观察者最基本的方法,例如,我们创建一个弹出提示框的的观察者:

    tap.subscribe(onNext: { [weak self] in
        self?.showAlert()
    }, onError: { error in
        print("发生错误: (error.localizedDescription)")
    }, onCompleted: {
        print("任务完成")
    })
    

    创建观察者最直接的方法就是在 Observable 的 subscribe 方法后面描述,事件发生时,需要如何做出响应。而观察者就是由后面的 onNextonErroronCompleted的这些闭包构建出来的。

    以上是创建观察者最常见的方法。当然你还可以通过其他的方式来创建观察者,可以参考一下 AnyObserver 和 Binder

    特征观察者

    和 Observable 一样,观察者也存特征观察者,例如:

  • 相关阅读:
    「专题总结」后缀自动机
    「专题总结」回文自动机
    「专题总结」后缀数组
    2.11毕设进度
    2.10毕设进度
    2.09毕设进度
    2.08毕设进度
    2.07毕设进度
    2.06毕设进度
    2.05毕设进度
  • 原文地址:https://www.cnblogs.com/strengthen/p/13576573.html
Copyright © 2011-2022 走看看