// 跳跃 : 如下,skip传入2 跳过前面两个值
// 实际用处: 在实际开发中比如 后台返回的数据前面几个没用,我们想跳跃过去,便可以用skip
- (void)skip {
RACSubject *subject = [RACSubject subject];
[[subject skip:] subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
[subject sendNext:@];
[subject sendNext:@];
[subject sendNext:@];
} //distinctUntilChanged:-- 如果当前的值跟上一次的值一样,就不会被订阅到
- (void)distinctUntilChanged {
RACSubject *subject = [RACSubject subject];
[[subject distinctUntilChanged] subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
// 发送信号
[subject sendNext:@];
[subject sendNext:@];
[subject sendNext:@]; // 不会被订阅
} // take:可以屏蔽一些值,去前面几个值---这里take为2 则只拿到前两个值
- (void)take {
RACSubject *subject = [RACSubject subject];
[[subject take:] subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
// 发送信号
[subject sendNext:@];
[subject sendNext:@];
[subject sendNext:@];
} //takeLast:和take的用法一样,不过他取的是最后的几个值,如下,则取的是最后两个值
//注意点:takeLast 一定要调用sendCompleted,告诉他发送完成了,这样才能取到最后的几个值
- (void)takeLast {
RACSubject *subject = [RACSubject subject];
[[subject takeLast:] subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
// 发送信号
[subject sendNext:@];
[subject sendNext:@];
[subject sendNext:@];
[subject sendCompleted];
} // takeUntil:---给takeUntil传的是哪个信号,那么当这个信号发送信号或sendCompleted,就不能再接受源信号的内容了。
- (void)takeUntil {
RACSubject *subject = [RACSubject subject];
RACSubject *subject2 = [RACSubject subject];
[[subject takeUntil:subject2] subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
// 发送信号
[subject sendNext:@];
[subject sendNext:@];
[subject2 sendNext:@]; // 1
// [subject2 sendCompleted]; // 或2
[subject sendNext:@];
} // ignore: 忽略掉一些值
- (void)ignore {
//ignore:忽略一些值
//ignoreValues:表示忽略所有的值
// 1.创建信号
RACSubject *subject = [RACSubject subject];
// 2.忽略一些值
RACSignal *ignoreSignal = [subject ignore:@]; // ignoreValues:表示忽略所有的值
// 3.订阅信号
[ignoreSignal subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
// 4.发送数据
[subject sendNext:@]; } // 一般和文本框一起用,添加过滤条件
- (void)fliter {
// 只有当文本框的内容长度大于5,才获取文本框里的内容
[[self.textField.rac_textSignal filter:^BOOL(id value) {
// value 源信号的内容
return [value length] > ;
// 返回值 就是过滤条件。只有满足这个条件才能获取到内容
}] subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
} ---------------------
作者:unique叶
来源:CSDN
原文:https://blog.csdn.net/y_csdnblog_xx/article/details/51480542
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. VitualBox环境下,实现windows系统与虚拟机Linux文件互传
  2. Course Schedule I & II
  3. Linux 环境中普通用户启动Myeclipse出错
  4. 找出linux服务器IO占用高的程序
  5. pip 豆瓣镜像使用
  6. [转]Responsive Tables Demo
  7. Lintcode: Singleton && Summary: Synchronization and OOD
  8. MarkdownPad2添加目录(输出为HTML时可用)
  9. jqueryui.position.js源代码分析
  10. ObjectSNMP
  11. AngularJS学习之旅—AngularJS SQL(十二)
  12. fcagte.exe应用程序错误
  13. 试试SQLServer 2014的内存优化表
  14. HDU 1512 Monkey King(左偏树模板题)
  15. python之路---11 第一类对象 函数名 闭包 迭代器
  16. ASP.NET应用技巧:非托管COM组件的使用
  17. Java Integer值用==和equals相等问题
  18. [USACO08NOV]lites
  19. hdu 3338 最大流 ****
  20. C#设置文件夹用户权限

热门文章

  1. flex 数字上标
  2. python-笔记-内置函数
  3. ASP.NET Core 上传微信永久视频素材
  4. 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第1节 继承_1_继承的概述
  5. git总览
  6. MVC 源码系列之控制器执行(二)
  7. 练习3-python-创造百万条数据库数据
  8. 解锁 HTTPS原理
  9. Java实验报告(一)&&第三周学习总结
  10. sql Server20008总结