美文网首页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的使用

    RAC就是一个第三方库,他可以大大简化你的代码过程。 官方的说,ReactiveCocoa(其简称为RAC)是由G...

  • RAC-ReactiveCocoa总结(一)

    RAC是什么? RAC — ReactiveCocoa(RAC) Github 一个开源框架!! RAC具有函数...

  • RAC-ReactiveCocoa总结(二)-rac_liftS

  • iconfont的使用(下载使用)

    1、下载文件 2、在生命周期中引入项目 beforeCreate () { var domModule = ...

  • Gson的使用--使用注解

    Gson为了简化序列化和反序列化的过程,提供了很多注解,这些注解大致分为三类,我们一一的介绍一下。 自定义字段的名...

  • 记录使用iframe的使用

    默认记录一下----可以说 这是我第一次使用iframe 之前都没有使用过; 使用方式: 自己开发就用了这几个属...

  • with的使用

    下面例子可以具体说明with如何工作: 运行代码,输出如下

  • this的使用

    什么是this? this是一个关键字,这个关键字总是返回一个对象;简单说,就是返回属性或方法“当前”所在的对象。...

  • this的使用

    JS中this调用有几种情况 一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象...

  • ==的使用

    积累日常遇到的编码规范,良好的编码习惯,持续更新。。。 日常使用==用于判断的时候,习惯性将比较值写前面,变量写后...

网友评论

    本文标题:RAC-ReactiveCocoa的使用

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