ReactiveCocoa(简称为RAC)是构建于ReactiveSwift之上的一个基于函数响应式编程思想的框架。 提供了一套可组合,可声明,可实现,可回调,灵活多变的API。
CocoaPost 导入
ReactiveObjC
#import<ReactiveObjC.h>
#import<NSObject+RACKVOWrapper.h>
利用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(@"五秒后执行一次");
}];








网友评论