ReactiveCocoa subscribeNext,带有nil检查

时间:2015-02-01 08:55:49

标签: ios objective-c reactive-cocoa

我用户下次订阅的大部分时间,我会检查该值是否为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];
}

有任何帮助吗?谢谢!

1 个答案:

答案 0 :(得分:14)

RACSignal上的ignore操作可用于过滤掉特定值:

[[RACObserve(self, maybeNilProperty) ignore:nil] subscribeNext:^(id x) {
  // x can't be nil
}];