iOS ReactiveCocoa 初探

ReactiveCocoa(简称为RAC)是构建于ReactiveSwift之上的一个基于函数响应式编程思想的框架。 提供了一套可组合,可声明,可实现,可回调,灵活多变的API。

CocoaPost 导入

ReactiveObjC

手动集成传送门祝你好运

#import
#import

利用RAC做响应.一个方法的调用

[[_myrecView rac_signalForSelector:@selector(sendMsg:)]subscribeNext:^(RACTuple * _Nullable x) {

    NSLog(@"控制器听到了%@",x);

}];

KVO Rac做监听

[_myrecView rac_observeKeyPath:@"frame" options:NSKeyValueObservingOptionNew observer:nil block:^(id value, NSDictionary *change, BOOL causedByDealloc, BOOL affectedOnlyLastComponent) {

    NSLog(@"属性改变了%@",change);

}];
//简化方法
[[_myrecView rac_valuesForKeyPath:@"frame" observer:nil]subscribeNext:^(id  _Nullable x) {

    NSLog(@"%@",x);

}];

//监听按钮点击事件

[[_Abutten rac_signalForControlEvents:UIControlEventTouchUpInside]subscribeNext:^(__kindof UIControl * _Nullable x) {

    NSLog(@"你点击了我!!");

}];

监听键盘事件

[[[NSNotificationCenter defaultCenter]rac_addObserverForName:UIKeyboardDidHideNotification object:nil]subscribeNext:^(NSNotification * _Nullable x) {

    NSLog(@"%@",x);

}];

输入框事件

[_myText.rac_textSignal subscribeNext:^(NSString * _Nullable x) {

    NSLog(@"%@",x);

}];

RAC 定时器 一句话 一秒执行一次

[[RACSignal interval:1.0 onScheduler:[RACScheduler scheduler]]subscribeNext:^(NSDate * _Nullable x) {

    NSLog(@"第%@秒",x);

}];

五秒后执行一次

[[RACScheduler mainThreadScheduler]afterDelay:5 schedule:^{

    NSLog(@"五秒后执行一次");

}];

你可能感兴趣的:(iOS ReactiveCocoa 初探)