Я пытаюсь обернуть голову вокруг рамки ReactiveCocoa, но я застрял в попытке выяснить, как отсрочить условно.Реактивная какао-условная задержка
Например, я хочу установить для свойства CADisplayLink pause значение false, когда массив пуст. Вот как я достиг этого:
RACSignal *changeSignal = [self rac_valuesAndChangesForKeyPath:@keypath(self, projectiles) options:NSKeyValueObservingOptionNew observer:nil];
RAC(self.displayLink, paused) = [changeSignal map:^id(RACTuple *value) {
return @([((NSMutableArray *)value.first) count] == 0);
}];
Но прежде, чем приостановить связь дисплея, я хочу, чтобы сохранить анимацию в течение нескольких секунд, так что я добавил delay:2.5];
до конца блока карты.
Теперь я столкнулся с проблемой, что она ждет 2,5 секунды, чтобы остановить И начать ссылку на изображение. Я только хочу, чтобы RAC остановился, когда я устанавливаю self.displayLink.paused
в YES
, но не тогда, когда я устанавливаю его на NO
.
Возможна ли эта «условная задержка» в ReactiveCocoa, и если да, то как это делается?