响应式编程
文章平均质量分 51
Coding_Physical
一个拥有六块腹肌的IT男
展开
-
学习笔记之ReactiveCocoa(一)
一、RACSiganl:信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据。 信号类(RACSiganl),只是表示当数据改变时,信号内部会发出数据,它本身不具备发送信号的能力,而是交给内部一个订阅者去发出。 默认一个信号都是冷信号,也就是值改变了,也不会触发,只有订阅了这个信号,这个信号才会变为热信号,值改变了才会触发。 如何订阅信号:调用信号RACSignal的subscribeNext就能订阅。 RACSiganl简单使用:原创 2022-02-04 15:32:12 · 182 阅读 · 0 评论 -
学习笔记之编程思想
编程思想:面向过程:处理事情以过程为核心,一步一步的实现。给第一次软件危机埋下了伏笔。面向对象:万物皆对象(没有对象New一个)。链式编程思想:将多个操作(所行代码)通过点号(.)链接在一起成为一句代码,目的是可读性好。链式编程最大的特点:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值)。示例代码:CalculateManager#import <Foundation/Foundation.h>NS_ASSUME_NONN原创 2022-02-02 22:06:09 · 894 阅读 · 0 评论 -
RAC初学
//// ViewController.m// LearnRAC-01//// Created by maochengfang on 2021/7/3.//#import "ViewController.h"#import "ReactiveObjC.h"@interface ViewController ()@property (nonatomic, strong) RACDisposable *subscriber;@end@implementation ViewCon.原创 2021-07-03 10:55:26 · 148 阅读 · 0 评论 -
RACObserve 观察者模式--KVO
需求:在家装选装方案的时候监听总价值及时展示技术实现:[RACObserve(self.viewModel, totalPrice) subscribeNext:^(id _Nullable x) { @strongify(self) if (x) { self.priceView.hidden = NO; } [self reloadData]; }];RACObserve 源码...原创 2021-06-25 15:11:45 · 2917 阅读 · 0 评论 -
ReactiveCocoa 中 RACCommand 底层实现分析
转载转载 2021-06-21 16:44:06 · 120 阅读 · 0 评论 -
学习RACCommand
一、理论RACCommand 是ReactiveCocoa中比较复杂的类,可以用来创建个订阅响应某些事件的信号,在作用于与UIKit组件进行交互或者执行包含副作用的操作时,它能够帮助我们更快的处理并且响应任务,减少编码以及工程复杂度(????),实现流程如下:二、实践ViewModel 文件里对外暴露RACCommand 属性,在init函数中初始化Raccommands- (void)initRaccommands { @weakify(self); self原创 2021-06-21 16:10:42 · 145 阅读 · 0 评论 -
学习 RxSwift操作符
ViewModel 的核心功能是把 Model 数据转换为用于 UI 呈现所需的数据。其实RxSwift 的操作符就是负责转换的,使用合适的操作符能帮我们减少代码量并提高生产力。一、过滤操作符001 filter 操作符用于过滤不需要的事件 func filterFunc() { Observable.of(2,23,5,45,1,21).filter{ $0 > 20 }.subscribe(onNext:{原创 2021-05-07 17:17:40 · 383 阅读 · 0 评论 -
PublishSubject、BehaviorSubject 和 ReplaySubject
RxSwift 里面,常见的 Subject 有PublishSubject、BehaviorSubject 和 ReplaySubject。它们的区别在于订阅者能否收到订阅前的事件。一、PublishSubject 发布事件 订阅者只能接收订阅后的事件,适合发送新的事件 func publishFunc(){ let publishSubject = PublishSubject<Int>() publishSubject.onNext(1) .原创 2021-05-05 19:11:10 · 1424 阅读 · 0 评论 -
RxSwift 之绑定UILabel
//// ViewController.swift// LeanRxSwift//// Created by maochengfang on 2021/4/27.//import UIKitimport RxSwiftimport RxCocoaimport Foundationstruct Music { let name: String; let singer:String; init(name:String,singer:String) { .原创 2021-05-04 10:46:51 · 587 阅读 · 0 评论 -
学 RxSwift - Observable
一、Observable-可观察序列代表的是一个可观察序列,就一个被观察者,会向观察对象发送事件序列。举个例子 冰箱的温度看作一个序列,当温度高于冷藏室的问题冰箱就会开启降温操作作用:Observable对象会随着时间推移不定期发出event;event可以携带数据,这个数据类型是泛型;最终需要一个观察者来捕获到事件数据。二、Event--事件事件有三种 next(正常执行)error( 错误执行结束)completed( 完整执行结束)next:可以携带数据的事件error:.原创 2021-05-03 11:33:33 · 347 阅读 · 2 评论 -
学习RXSwift之传统和Rx改在对比
RxSwift只是基于swift语言的Rx标准实现接口库,RxSwift不包含任何Cocoa或者UI方面的类RxCocoa:是基于RxSwift针对IOS开发的一个库,它通过Extension的方法给原生UI控件增加R x特性,使得我们更容易订阅和响应这些控件的事件。简单建立一个TableView//// ViewController.swift// LeanRxSwift//// Created by maochengfang on 2021/4/27.//import原创 2021-04-27 23:19:01 · 353 阅读 · 0 评论