2015-09-23 2 views
0

Я пытаюсь познакомиться с реактивным какао и сталкиваться с проблемой при объединении сигналов.Объединение сигналов RAC и получение всех значений

Я понимаю, что combLatest или zip отправит только значение, когда все объединенные сигналы отправили хотя бы одно значение. Но возможно ли комбинировать сигналы и получать значение, если какой-либо из сигналов посылает значение?

У меня есть несколько сигналов, что я хотел бы выполнить тот же код при отправке значения, независимо от того, посылают ли другие сигналы какое-либо значение или нет. Я подхожу к этому неправильно? или это возможно?

Благодаря

ответ

1

Как об этом:

RACSignal* a = ... 
RACSignal* b = ... 

RACSignal* combined = [[RACSignal 
    combineLatest:@[[a startWith:nil], [b startWith:nil]] 
    skip:1]; 

Здесь startWith: убеждается, что все сигналы пожара один раз в начале, создавая комбинированный [nil, nil] кортеж (который будет пропущено skip:1). Затем, если, например, a отправляет @"foo", combined отправит кортеж [@"foo", nil].

Смежные вопросы