我有两个Event
对象信号。Event
对象有一个date
属性,该属性设置为事件创建的日期。这两个信号在创建时发送事件。
我想创建第三个信号:
- 当
event2.date
在 的任一侧落在 1 秒内时event1.date
,发送一个包含两个事件的元组 - 当最近的 1 秒后过去
event1.date
,并且最近event2
的date
不在有效范围内时,发送一个仅包含的元组event1
我正在使用combineLatest:
andfilter
创建一个信号,该信号使用第一个条件过滤元组:
[[RACSignal combineLatest:@[ signal1, signal2 ]]
filter:^BOOL(RACTuple *tuple) {
RACTupleUnpack(Event *event1, Event *event2) = tuple;
NSDate *startDate = [event1.date dateByAddingTimeInterval:-1];
NSDate *endDate = [event1.date dateByAddingTimeInterval:1];
if ([event2.date compare:startDate] == NSOrderedAscending) return NO;
if ([event2.date compare:endDate] == NSOrderedDescending) return NO;
return YES;
}];
如何制作包含这两个标准的信号?