2014-12-20 3 views
1

Я новичок в ReactiveCocoa и пытаюсь понять, как я могу моделировать следующий пример, используя реактивные команды какао: я пытаюсь читать байты из потока, и это делается в функции «readStream ». Я хочу предотвратить дальнейшие вызовы readStream, пока не закончится первая партия чтения. Как показано, я использую флаг «чтения», который устанавливается при запуске чтения и сбрасывается при чтении. Я хотел бы избежать использования флага «чтение», может ли это быть лучше закодировано с использованием реактивного какао.Избегайте использования флагов для управления вызовом кода

- (void) stream:(NSStream *) aStream handleEvent:(NSStreamEvent)eventCode { 
    .. 
    case NSStreamEventHasBytesAvailable: 
    if (!self.reading){ 
     self.reading = YES; // 
     [self readStream]; // Reads bytes from the stream 
    } 
    break; 

- (void) readStream { 
     // Read data 
     self.reading = NO; 
    } 

ответ

0

RACCommands позволяет кнопку до тех пор, возвращаемый сигнал завершения, я не уверен, что контекст с вашим кодом, если он находит в более низком уровне глобального компонента одноплодного, вам все еще нужно держать флаг.