reactivecocoa ios7怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了reactivecocoa ios7怎么办相关的知识,希望对你有一定的参考价值。

参考技术A 1.打开xcode创建一个工程,命名的工程名为ReactiveCocoaDemo。2.终端到工程路径下cdReactiveCocoaDemo/podsearchReactiveCocoa3.配置依赖文件viPodfileplatform:ios,'5.0'pod'ReactiveCocoa'wq4.下载文件podinstall/update5.打开"BuildPhases"选中相应的target,添加RAC到"LinkBinaryWithLibraries".加上libReactiveCocoa-iOS.a6.在HeaderSearchPaths中添加$(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/include"7.在"OtherLinkerFlags"添加-ObjC8.在ReactiveCocoaDemo-Prefix.pch将RAC的头文件加进去。#import"ReactiveCocoa.h"

iOS 开发之 ReactiveCocoa(基础)

前言

 

前段时间在看Masonry这个全新的第三方的布局框架的时候,开始了解了链式编程.后来慢慢的又开始了解函数式编程和响应式编程.在这集中的编程思想下,开始接触和研究了ReactiveCocoa这个框架.在很多大神的blog中,都对这个框架有着高度的评价,各种秀自己如何灵活的使用ReactiveCocoa.今天主要就是这个框架的一些自己的学习笔记.

 

1.ReactiveCocoa简介

 

ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架.

 

ReactiveCocoa结合了几种编程风格:

 

前言

 

前段时间在看Masonry这个全新的第三方的布局框架的时候,开始了解了链式编程.后来慢慢的又开始了解函数式编程和响应式编程.在这集中的编程思想下,开始接触和研究了ReactiveCocoa这个框架.在很多大神的blog中,都对这个框架有着高度的评价,各种秀自己如何灵活的使用ReactiveCocoa.今天主要就是这个框架的一些自己的学习笔记.

 

1.ReactiveCocoa简介

 

  • ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架.

     

  • ReactiveCocoa结合了几种编程风格:

 

ReactiveCocoa就被开发者们描述为响应式函数编程框架(FRP);使用RAC就不需要考虑调用的顺序,直接考虑结果,使得代码高聚合,方便管理.

 

2.ReactiveCocoa使用

 

2.1 RACSiganl(RAC的核心类):信号类 用来数据传递

 

注意点:

 

  • 该信号默认是一个冷信号,当值改变了,也并不会触发改信号,只有订阅了该信号,才会触发改信号.

  • 订阅信号的方法: subscribeNext:

 

//创建一个信号

    RACSignal *singal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

 

        //发送一个信号.

        [subscriber sendNext:@"Ricky"];

        //如果不在发送数据,最好发送信号完成,内部会自动调用[RACDisposable disposable]取消订阅信号。

        [subscriber sendCompleted];

 

 

        return [RACDisposable disposableWithBlock:^{

 

            //信号取消

        }];

    }];

 

 

    //订阅信号 ,激活信号

    [singal subscribeNext:^(id x) {

 

        //x : 就是信号发送到数据

        NSLog(@"%@",x);

    }];

 

2.2 替换Target和Action

 

  • TextField的字符变化

 

UITextField *textField =[[UITextField alloc]initWithFrame:CGRectMake(100, 100, 100, 40)];

    textField.backgroundColor =[UIColor redColor];

 

    [self.view addSubview:textField];

 

 

    //监听UITextField的输入变化

    [[textField rac_textSignal] subscribeNext:^(id x) {

 

        NSLog(@"%@",x);

    }];

 

    //x就是textfield的text,所以就把id修改成NSString

//    [[textField rac_textSignal] subscribeNext:^(NSString * text) {

//        

//        NSLog(@"%@",text);

//    }];

 

  • UIButton的事件的监听

 

UIButton *button =[UIButton buttonWithType:UIButtonTypeCustom];

 

    button.frame = CGRectMake(100, 100, 100, 100);

    button.backgroundColor = [UIColor yellowColor];

 

    [self.view addSubview:button];

 

    [[button rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {

 

        //这个x就是button,已经知道了类型就可以把id x 修改成UIButton *button

        NSLog(@"%@",x);

 

    }];

 

  • 手势事件

 

RAC的通知不需要移除,RAC会自己处理改通知的移除

 

[[[NSNotificationCenter defaultCenter] rac_addObserverForName:UIApplicationDidEnterBackgroundNotification object:nil] subscribeNext:^(id x) {

 

        NSLog(@"%@",x);

    }];

 

  • 定时器

 

//延迟一定时间做某事

    [[RACScheduler mainThreadScheduler]afterDelay:2 schedule:^{

 

        NSLog(@"Ricky");

    }];

//每个多长时间调用一次事件    

    [[RACSignal interval:1 onScheduler:[RACScheduler mainThreadScheduler]] subscribeNext:^(id x) {

 

        NSLog(@"%@",x);

 

    }];

 

  • KVO

    监听UIScrollView的contentOffset

 

UIScrollView *scroller =[[UIScrollView alloc]initWithFrame:CGRectMake(100, 100, 100, 200)];

    [self.view addSubview:scroller];

 

    [RACObserve(scroller, contentOffset) subscribeNext:^(id x) {

 

        NSLog(@"%@",x);

    }];

 

以上是关于reactivecocoa ios7怎么办的主要内容,如果未能解决你的问题,请参考以下文章

最快让你上手ReactiveCocoa之进阶篇

上手ReactiveCocoa

最快让你上手ReactiveCocoa之基础篇

最快让你上手ReactiveCocoa之基础篇

最快让你上手ReactiveCocoa之基础篇(简称RAC)

从 ReactiveCocoa 中能学到什么?不用此库也能学以致用