ReactiveObjC 响应函数式框架 简单实用


ReactiveObjC 响应函数式框架

ReactiveObjC 是什么? 

RAC,简单来说,就是信号,提供RACSignal捕捉当前值和将来值的信号,通过对信号进行链接,组合和反应,软件可以以声明方式编写,而不需要连续观察和更新值的代码

// When self.username changes, logs the new name to the console.
//
// RACObserve(self, username) creates a new RACSignal that sends the current
// value of self.username, then the new value whenever it changes.
// -subscribeNext: will execute the block whenever the signal sends a value.
[RACObserve(self, username) subscribeNext:^(NSString *newName) {
	NSLog(@"%@", newName);
}];


ReactiveObjC 什么时候用? 

响应式编程,处理异步或事件驱动的数据源,链接依赖的操作,并行独立的工作,简化收集转换

@weakify(self);    @strongify(self);


ReactiveObjC的简单使用

1.监听按钮点击事件

@weakify(self)

[[self.submitBnt rac_signalForControlEvents:UIControlEventTouchUpInsidesubscribeNext:^(__kindof UIControl * _Nullable x) {

        @strongify(self)

        //按钮点击后响应内容

}];

 

2.监听通知事件

@weakify(self)

[[[[NSNotificationCenter defaultCenterrac_addObserverForName:KGestureLoginSueccessNotification object:niltakeUntil:[self rac_willDeallocSignal]]subscribeNext:^(NSNotification * _Nullable x) {

        @strongify(self)

        //接受通知后响应内容

}];

 

3.监听某一对象的属性变化

宏定义RACObserve监听某个对象的某个属性的改变

[[[RACObserve(self.viewModel, page) distinctUntilChangeddeliverOnMainThread]

     subscribeNext:^(id  _Nullable x) {

        @strongify(self)

        //响应内容

    }];

 

4.多个信号的处理

//当需要请求多个数据,在所有数据请求完成之后才进行更新UI或者其他操作。相当于多线程组

RACSignal *request1 = [RACSignal createSignal:^RACDisposable *(id<RACSubscri

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值