zoukankan      html  css  js  c++  java
  • ReactiveCocoa常用方法

     //1 代替kvo

    [[self.redView rac_valuesForKeyPath:@"frame" observer:nil] subscribeNext:^(id x) {
         NSLog(@"修改了");
    }];

    //2 监听事件
    [[self.btn rac_signalForControlEvents:(UIControlEventTouchUpInside)] subscribeNext:^(id x) {
         NSLog(@"按钮被点击");
    }];
    //3 代替通知
    [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIKeyboardDidShowNotification object:nil]subscribeNext:^(id x) {
         NSLog(@"%@",x);
    } ];

    //4 监听文本框
    [[self.textFiled rac_textSignal]subscribeNext:^(id x) {
          NSLog(@"%@",x);
    }];

    // 6.处理多个请求,都返回结果的时候,统一做处理.
    RACSignal *request1 = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

         //请求数据
        //AFN
        NSLog(@"请求热销模块");
        // 发送请求1
        [subscriber sendNext:@"发送请求1"];
        return nil;
    }];

    RACSignal *request2 = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        NSLog(@"请求最新模块");
       // 发送请求2
        [subscriber sendNext:@"发送请求2"];
       return nil;
    }];

    // 使用注意:几个信号,参数一的方法就几个参数,每个参数对应信号发出的数据。
    [self rac_liftSelector:@selector(updateUIWithR1:r2:) withSignalsFromArray:@[request1,request2]];

    // 更新UI
    - (void)updateUIWithR1:(id)data r2:(id)data1
    {
        NSLog(@"更新UI%@ %@",data,data1);
    }

    //常用宏 文本框改变 label根本改变

    // [self.textFiled.rac_textSignal subscribeNext:^(id x) {
          // _label.text = x;
    // }];

    RAC(self.label,text) = self.textFiled.rac_textSignal;

  • 相关阅读:
    vim for python配置
    Python学习的一些好资料
    【Python开发实战】Python环境的配置
    【Python开发实战】Windows7+VirtualBox+Ubuntu环境配置
    linux下shapely的安装
    【python常用模块】os.path
    linux下gdal的python包的安装
    由二叉树的前序遍历和中序遍历,求其后序遍历
    ASCII码表
    C++标准库函数之排列函数
  • 原文地址:https://www.cnblogs.com/xsiOS/p/5132264.html
Copyright © 2011-2022 走看看