有什么方法可以取消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;
}];
}];
}];
那么在调用[commandexecute: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 - 取消 RAC 命令执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23784097/