I 、简介
–
RACSequence 代表的是一个不可变的值的序列,与 RACSignal 不同,它是 pull-driven 类型的流。从严格意义上讲,RACSequence 并不能算作是信号源,因为它并不能像 RACSignal 那样,可以被订阅者订阅,但是它与 RACSignal 之间可以非常方便地进行转换。
从理论上说,一个 RACSequence 由两部分组成:
head :指的是序列中的第一个对象,如果序列为空,则为 nil ;
tail :指的是序列中除第一个对象外的其它所有对象,同样的,如果序列为空,则为 nil 。
事实上,一个序列的 tail 仍然是一个序列。
同样的,一个序列的 tail 也可以看作是由 head 和 tail 组成,而这个新的 tail 又可以继续看作是由 head 和 tail 组成,这个过程可以一直进行下去。而这个就是 RACSequence 得以建立的理论基础,所以一个 RACSequence 子类的最小实现就是 head 和 tail。
总的来说,RACSequence 存在的最大意义就是为了简化 Objective-C 中的集合操作:
- 例子一:
- 例子二:
OC的写法