iOS RAC ReactiveObjC框架 的简单用法
2017-04-28 本文已影响2078人
WS_0909
也是刚接触 学习阶段
如果有帮助到你就给个赞吧 谢谢咯...
pod 'ReactiveObjC', '~> 2.1.2'
1、 监听TeXField 输入
//监听textField 输入的字
[_userNameTF.rac_textSignal subscribeNext:^(NSString * _Nullable x) {
NSLog(@"textField.text == %@",x);
}];
2、
[[_userNameTF.rac_textSignal filter:^BOOL(NSString * _Nullable value) {
return value.length >= 4;
}]
subscribeNext:^(NSString * _Nullable x) {
NSLog(@"你在乎的字符串 = %@",x);
}];
3、 Button 的点击方法 省略了 addTarget 和创建方法
[[self.button rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(__kindof UIControl * _Nullable x) {
NSLog(@"button你点我了");
}];
4、 便利数组字典
NSArray *arr = @[@"1", @"2", @"3", @"4", @"5"];
[arr.rac_sequence.signal subscribeNext:^(id _Nullable x) {
NSLog(@"遍历数组 %@",x);
}];
NSDictionary *dic = @{@"name":@"yangBo", @"age":@"19"};
[dic.rac_sequence.signal subscribeNext:^(RACTuple * _Nullable x) {
NSLog(@"遍历字典 %@",x);
}];
5、
通知 可省略此方法里的清除通知 -(void)dealloc {}
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardDidShowNotification object:nil] subscribeNext:^(id x) {
NSLog(@"键盘弹起");
}];
6、rac 代替 代理
// 监听点击了Cell里的button点击事件 button的点击方法是buttonAction:
[[cell rac_signalForSelector:@selector(buttonAction:)] subscribeNext:^(id _Nullable x) {
NSLog(@"点击了button%@",x);
}];
7、 定时器
//3秒后执行一次
[[RACScheduler mainThreadScheduler]afterDelay:3 schedule:^{
NSLog(@"3秒后执行一次");
}];
//每隔两秒执行一次
//这里要加takeUntil条件限制一下否则当控制器pop后依旧会执行
[[[RACSignal interval:2 onScheduler:[RACScheduler mainThreadScheduler]] takeUntil:self.rac_willDeallocSignal ] subscribeNext:^(id x) {
NSLog(@"每两秒执行一次");
}];
干货代码 我的一个纯代码的基础框架有各种常用的分类封装入手即用