我用户下次订阅的大部分时间,我会检查该值是否为nil,如下所示:
[[RACObserve(self.viewModel, stockViewModel.stock.imageURL) takeUntil:[self takeUntil]] subscribeNext:^(id
value) {
@strongify(self);
//Check if not nil
if (value) {
//Do somthing
}
}];
我每次都这样做了,我试图找一个RACSignal的类别来为我做这个检查,但是我不知道怎样才能得到这个值(不是块值,下一个值) :
- (RACDisposable *)subscribeNext:(void (^)(id x))nextBlock {
NSCParameterAssert(nextBlock != NULL);
RACSubscriber *o = [RACSubscriber subscriberWithNext:nextBlock error:NULL completed:NULL];
return [self subscribe:o];
}
有任何帮助吗?谢谢!
答案 0 :(得分:14)
RACSignal上的ignore
操作可用于过滤掉特定值:
[[RACObserve(self, maybeNilProperty) ignore:nil] subscribeNext:^(id x) {
// x can't be nil
}];