美文网首页iOS开发资料收集区
RAC-ReactiveCocoa的使用

RAC-ReactiveCocoa的使用

作者: 蜗牛锅 | 来源:发表于2018-03-23 17:59 被阅读10次

    RAC就是一个第三方库,他可以大大简化你的代码过程。

    官方的说,ReactiveCocoa(其简称为RAC)是由GitHub开源的一个应用于iOS和OS X开发的新框架。RAC具有函数式编程响应式编程的特性。

    配置RAC环境

    我习惯用cocoapods来安装github上得开源库,不会的新手iOS开发者有兴趣可以去学一下。

    • 进入终端,建立 Podfile,并且输入以下内容
    # Uncomment this line to define a global platform for your project
     platform :ios, '8.0' 
    # Uncomment this line if you're using Swift use_frameworks!
     pod 'ReactiveCocoa', '~> 4.0.4-alpha-4'
    

    想学习cocoapods请点击cocoapods的使用

    RAC.png

    一、响应式编程就是实时响应某个事件

    // 创建信号
    RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id  _Nonnull subscriber) {
        NSLog(@"Hello");
        // 发送信号
        [subscriber sendNext:@"This is RAC"];
        return nil;
    }];
    // 订阅信号
    [signal subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    }];
    

    二、RAC很强大,一行代码搞定以前的事件监听
    举几个实际使用案例

    1. TargetAction转Block
      举几个实际使用案例

    2. TargetAction转Block
      ①UITextField(实时监听输入框内容)

    [[self.textField rac_textSignal] subscribeNext:^(NSString * _Nullable x) {
        NSLog(@"%@", x);
    }];
    

    ②UIButton(Button点击事件)

    [[self.button rac_signalForControlEvents:(UIControlEventTouchUpInside)] subscribeNext:^(__kindof UIControl * _Nullable x) {
        NSLog(@"%@",x);
    }];
    
    1. 通知转Block
    [[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIApplicationDidBecomeActiveNotification object:nil] subscribeNext:^(NSNotification * _Nullable x) {
        NSLog(@"%@",x);
    }];
    

    三、注意事项:
    RAC使用@weakify(self);和@strongify(self);来避免block循环引用

    @weakify(self);
    [[self.textField rac_textSignal] subscribeNext:^(NSString * _Nullable x) {
        @strongify(self);
        self.textField.text = @"Hello";
    }];
    

    点击下载Demo

    相关文章

      网友评论

        本文标题:RAC-ReactiveCocoa的使用

        本文链接:https://www.haomeiwen.com/subject/xbkxcftx.html