有什么方法可以取消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/