オブジェクトの信号が 2 つありEvent
ます。Event
オブジェクトにはdate
、イベントが作成された日付に設定されるプロパティがあります。2 つのシグナルは、作成時にイベントを送信します。
次のような 3 番目のシグナルを作成したいと考えています。
event2.date
のいずれかの側で 1 秒以内に収まるときevent1.date
、両方のイベントを含むタプルを送信します- 最新の から 1 秒が経過し、
event1.date
最新event2
のdate
が有効な範囲内に収まらない場合、 のみを含むタプルを送信します。event1
最初の基準を使用してタプルをフィルタリングするシグナルを作成するためにcombineLatest:
andを使用しています。filter
[[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;
}];
両方の基準を組み込んだシグナルを作成するにはどうすればよいですか?