美文网首页ReactiveCocoaiOS 架构恩美第二个APP项目
iOS RAC学习笔记 从零起步 (第三天)

iOS RAC学习笔记 从零起步 (第三天)

作者: 睡不着的叶 | 来源:发表于2016-07-18 18:29 被阅读780次
持之以恒

前言

写技术文章和学技术是一样的,一定要持之以恒才能攻克它,我还继续在写,你们一定要坚持学下去哦。今天是第三天的学习任务了,有人反馈说,已经对RAC的代理机制爱不释手了,哈哈,这是好现象,今天要讲的是剩下的部分。也属于比较基础的应用,希望和我一起来掌握一下。

RACSequence和RACTuple简单使用

RACSequence是RAC中的集合类,用于代替NSArray,NSDictionary,可以使用它来快速遍历数组和字典。

遍历数组:

  • 第一步: 把数组转换成集合RACSequence numbers.rac_sequence
  • 第二步:把集合RACSequence转换RACSignal信号类,numbers.rac_sequence.signal
  • 第三步: 订阅信号,激活信号,会自动把集合中的所有值,遍历出来。

代码展示

遍历字典:
遍历出来的键值对会包装成RACTuple(元组对象)

字典转模型:

RACMulticastConnection简单使用

需求:假设在一个信号中发送请求,每次订阅一次都会发送请求,这样就会导致多次请求。
解决:使用RACMulticastConnection就能解决.

使用步骤:

  • 第一步: 创建信号 + (RACSignal *)createSignal:(RACDisposable * (^)(id<RACSubscriber> subscriber))didSubscribe
  • 第二步:创建连接 RACMulticastConnection *connect = [signal publish];
  • 第三步: 订阅信号,注意:订阅的不在是之前的信号,而是连接的信号。 [connect.signal subscribeNext:nextBlock]
  • 第四步: 订阅信号,注意:订阅的不在是之前的信号,而是连接的信号。 [connect.signal subscribeNext:nextBlock]
 1.创建请求信号
   RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        NSLog(@"发送请求");
        return nil;
    }];
    // 2.订阅信号
    [signal subscribeNext:^(id x) {
        NSLog(@"接收数据");
    }];
    // 2.订阅信号
    [signal subscribeNext:^(id x) {
        NSLog(@"接收数据");
    }];
    // 3.运行结果,会执行两遍发送请求,也就是每次订阅都会发送一次请求


    // RACMulticastConnection:解决重复请求问题
    // 1.创建信号
    RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        NSLog(@"发送请求");
        [subscriber sendNext:@1];
        return nil;
    }];

    // 2.创建连接
    RACMulticastConnection *connect = [signal publish];
    // 3.订阅信号,
    // 注意:订阅信号,也不能激活信号,只是保存订阅者到数组,必须通过连接,当调用连接,就会一次性调用所有订阅者的sendNext:
    [connect.signal subscribeNext:^(id x) {
        NSLog(@"订阅者一信号");
    }];

    [connect.signal subscribeNext:^(id x) {
        NSLog(@"订阅者二信号");
    }];

    // 4.连接,激活信号
    [connect connect];

RACObserve简单使用

监听某个对象的某个属性,返回的是信号。
RAC中的KVO大部分都是宏定义,所以代码异常简洁,简单来说就是RACObserve(TARGET, KEYPATH)这种形式,TARGET是监听目标,KEYPATH是要观察的属性值,举个例子,如果UIScrollView滚动则输出success。

响应事件

1.按钮的点击

2. UIAlertView响应

3. UITextField响应

4. 通知监听

5. map用法

小结

今天的第三天知识点先总结这么多,希望大家多多应用,能够在使用中尝试下更多的方法,毕竟我只能起到抛砖引玉的作用,举一反三还需要你们的研究。希望我的小小文字,能带给你些许的帮助,也就是我的初心了。感谢大家对我的支持和私信。支持我就多多留言,添加个关注吧,我会持续更新文章的。

相关文章

  • iOS RAC学习笔记 从零起步 (第三天)

    前言 写技术文章和学技术是一样的,一定要持之以恒才能攻克它,我还继续在写,你们一定要坚持学下去哦。今天是第三天的学...

  • iOS RAC学习笔记 从零起步 (第四天)

    前言 最近北京在下大雨,所以最近写文章的步伐收到了些许的阻挠,让有些朋友久等了。那么问题来了,北京下大雨关我写文章...

  • iOS RAC学习笔记 从零起步(第一天)

    前言 现在很多公司都崇尚RAC开发了,尤其是配合MVVM的架构,使整个项目的逻辑性更加的强,而且维护代码和迭代功能...

  • iOS RAC学习笔记 从零起步 (第二天)

    前言 书接上回,上回讲到了RAC的基本概念还有基础的类,相信大家有一定的印象了。可能有很多人说还不懂怎么应用,或者...

  • (一)、iOS RAC - RACSignal

    (一)、iOS RAC - RACSignal (二)、iOS RAC - RACDisposable(三...

  • 2018-11-12

    iOS MVVM+RAC 从框架到实战 - 简书

  • RAC基础

    最近接触学习到了RAC(ReactiveCocoa),RAC是函数式+响应式编程结合 我们在iOS开发中,页面之间...

  • 从RAC到MVVM+RAC 学习笔记

    前言 最近学习使用MVVM + RAC 模式开发项目,这里分享些心得。 1. RAC入门资料 1.1 最快让你上手...

  • ReactiveObjC(RAC)基础

    最近学习了一下RAC的使用,参考了下面两篇文章 Jonzzs的【iOS 开发】ReactiveObjC(RAC)的...

  • MVVM

    iOS MVVM+RAC 从框架到实战 【长篇高能】ReactiveCocoa 和 MVVM 入门 iOS 最全R...

网友评论

本文标题:iOS RAC学习笔记 从零起步 (第三天)

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