首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Bo_Bo
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
21
文章 21
沸点 0
赞
21
返回
|
搜索文章
赞
文章( 21 )
沸点( 0 )
RxSwift之中介者模式
从上面 中介者模式 的定义似乎知道了中介者的作用,但是具体如何使用呢?那么下面我将和小伙伴们一起来实现一个中介者。 在项目开发中,很多时候都会用到定时器。我们可能会写出如下代码: 执行代码,定时器开始走了。但是当我们离开控制器时,就会发现,deinit 并没有执行。因为我们给 …
RxSwift之内存管理
很明显,这是会引起内存泄漏的闭包循环引用self->myClosure->self。 要打破这种循环引用也很简单。 1.使用 weak 关键字。 2.使用 unowned 关键字。 执行结果虽然不会崩溃,但是打印出来的值是 nil,也和我们的期望不一致。 所以,在延迟调用这种情…
RxSwift高阶函数之publish
分析打印结果,可以发现,虽然对序列订阅了两次,但是只发送了一次信号,并且两个观察都有响应。如果没有对 Observable 执行 publish() 和 最后的 netOb.connect() ,那么按照RxSwift核心逻辑中的分析,就会在两个观察者订阅的时候,都会发送信号,…
RxSwift核心之Disposable
基于以上示例,来分析一下底层逻辑。 我们再查看一下 subscribe 源码。 在之前的RxSwift核心逻辑简介中,我们仅分析了 self.asObservable().subscribe(observer)这个订阅逻辑,因为订阅流程基本是一个独立的完成逻辑,而 dispos…
RxSwift之Subject
通过 PublishSubject 的继承关系,可以看出,PublishSubject 既是 可监听序列,也是 观察者。 会执行 PublishSubject.on 函数,并继续调用 dispatch 函数和 self._synchronized_on(event) 函数。 s…
RxSwift核心之调度器Schedulers
小伙伴在平时的开发过程中,肯定都使用过网络请求,网络请求是在后台执行的,获取到数据之后,再在主线程更新UI。 来一段网络请求伪代码。 我们用 subscribeOn 来决定数据序列的构建函数在哪个 Scheduler 上运行。 在上面的例子中,由于获取 Data 需要花费很长的…
RxSwift高阶函数之combineLatest
查看combineLatest源码。 发现这只有一个协议函数的声明。老规矩,根据注释查找到函数的真正实现。因为示例中使用的是两个序列的组合,所以应该查看CombineLatest+arity.swift文件。 找到 combineLatest 函数。 会发现 combineLa…
RxSwift高阶函数之map映射
点击 map 函数进入源码来到这里。 根据经验,我们应该去查找Map文件。如果没有这个经验或者不知道怎么查找的小伙伴,请移步我之前的博客。^_^ 在Map文件中找到 map 函数。其中调用了 在之前的文章中已经分析过了,asObservable() 的作用是将返回 self 并…
RxSwift之定时器(timer)
执行之后会发现,timerAction() 函数只执行了一次。这是因为Timer定时器,需要和RunLoop支持。所以,需要把第三步的代码修改成如下。 在iOS10.0以后,Timer增加了block回调,但是用法都是一样的,就不再举例说明了。 DispatchSourceTi…
RxSwift之管道——AnonymousObservableSink
之前已经知道了,第二步订阅信号以后,代码会来到这里。 在run函数中,会初始化AnonymousObservableSink,同时传递参数observer和cancel,cancel是垃圾处理器,处理内存回收,不是本篇的重点,先忽略。我们重点关注observer。 先看看obs…
下一页
个人成就
文章被点赞
85
文章被阅读
50,165
掘力值
1,064
关注了
5
关注者
45
收藏集
3
关注标签
7
加入于
2017-12-21