资源整理iOS 开发iOS技术点

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(@"每两秒执行一次"); 
}];

干货代码 我的一个纯代码的基础框架有各种常用的分类封装入手即用

上一篇下一篇

猜你喜欢

热点阅读