ReactiveCocoa subscribeNext,带有nil检查

MCM*_*tan 4 objective-c ios 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
}

    }];
Run Code Online (Sandbox Code Playgroud)

我每次都这样做,我试图找一个RACSignal的类别来为我做这个检查,但是我不知道怎么能从这里获得值(不是块值,下一个值):

- (RACDisposable *)subscribeNext:(void (^)(id x))nextBlock {
    NSCParameterAssert(nextBlock != NULL);

    RACSubscriber *o = [RACSubscriber subscriberWithNext:nextBlock error:NULL completed:NULL];
    return [self subscribe:o];
}
Run Code Online (Sandbox Code Playgroud)

有帮助吗?谢谢!

小智 14

ignore上一个RACSignal操作可以用来过滤掉特定的值:

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