有什么方法可以取消RACCommand的执行?

例如,我有一条带有无限执行信号的命令,如下所示:

RACCommand *command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
    return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        __block BOOL stop = NO;

        while (!stop) {
            [subscriber sendNext:nil];
        }

        return [RACDisposable disposableWithBlock:^{
            stop = YES;
        }];
    }];
}];


那么如何在调用[command execute:nil]后停止它?

最佳答案

我对RACCommand有点陌生,所以不确定是否有更好的方法可以做到这一点。但是我一直在使用takeUntil:和取消信号来停止执行。

RACCommand *command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
    return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        while (true) {
            [subscriber sendNext:nil];
        }
    }] takeUntil:cancellationSignal];
}];

关于objective-c - 取消RACCommand执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23784097/

10-10 23:50