使用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;
答案 0 :(得分:3)
是否可以使用RAC替代这种方法?
不。 -rac_signalForSelector:
不能用于非存在方法的选择器,非空返回类型。在这些情况下,实现该方法以返回所需的值。这使它成为一种存在的方法,可以应用-rac_signalForSelector:
。