替换返回值的委托方法

时间:2014-10-23 18:10:51

标签: objective-c reactive-cocoa

使用ReactiveCocoa是一种更清晰,更集中的方式来处理事件而不是委托方法,但我想知道是否有可能替换返回值而不会丢失其值的方法。

在下面的示例中,调用gestureRecognizer:shouldReceiveTouch:中的方法UIGestureRecognizerDelegate,但方法签名期望BOOL返回值有效。这样,手势识别器就不起作用,就像方法返回NO

一样

是否可以使用RAC替代这种方法?

[[self rac_signalForSelector:@selector(gestureRecognizer:shouldReceiveTouch:)
                         fromProtocol:@protocol(UIGestureRecognizerDelegate)]
 subscribeNext:^(id x){
    NSLog(@"Was called, but how do I return the actual permission value?");
}];

self.backgroundTapGesture.delegate = self;

1 个答案:

答案 0 :(得分:3)

  

是否可以使用RAC替代这种方法?

不。 -rac_signalForSelector:不能用于非存在方法的选择器,非空返回类型。在这些情况下,实现该方法以返回所需的值。这使它成为一种存在的方法,可以应用-rac_signalForSelector: